我正在使用基於d3和交叉過濾器的Dimensional Charting JavaScript庫dc.js製作條形圖。使用dc.js和crossfilter.js在barChart中正確顯示容器寬度
我想要做的就是顯示一個帶有指定數量箱的直方圖---使用barChart
函數應該很容易。我有一個名爲data
的數組,其中包含0到90000之間的浮點值,我只想使用10個分箱的直方圖顯示分佈。我用下面的代碼產生下面的柱狀圖:
var cf = crossfilter(data);
var dim = cf.dimension(function(d){ return d[attribute.name]; });
var n_bins = 10;
var xExtent = d3.extent(data, function(d) { return d[attribute.name]; });
var binWidth = (xExtent[1] - xExtent[0])/n_bins;
grp = dim.group(function(d){return Math.floor(d/binWidth) * binWidth;});
chart = dc.barChart("#" + id_name);
chart.width(200)
.height(180)
.margins({top: 15, right: 10, bottom: 20, left: 40})
.dimension(dim)
.group(grp)
.round(Math.floor)
.centerBar(false)
.x(d3.scale.linear().domain(xExtent).range([0,n_bins]))
.elasticY(true)
.xAxis()
.ticks(4);
並沒有真正看的權利:每個酒吧真的是瘦!我想要一個正常的直方圖,其中條塊很厚並且幾乎相互接觸,每個條塊之間可能會有幾個像素填充。任何想法我做錯了什麼?