d3とクロスフィルターに基づくDimensionalChartingjavascriptライブラリdc.jsを使用して棒グラフを作成しています。
私がやりたいのは、指定された数のビンを含むヒストグラムを表示することだけです。これは、barChart
関数を使用して簡単に行うことができます。
0から90000までの浮動小数点値を含むという配列がdata
あり、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);
それは本当に正しく見えません:各バーは本当に細いです!バーが太く、互いにほぼ接触し、各バーの間に数ピクセルのパディングがある、通常の外観のヒストグラムが必要です。私が間違っていることについて何か考えはありますか?