ユーザーが日時範囲を柔軟に選択できるようにし、その期間中のクリック数のグラフを表示したいと考えています。範囲は、1 年、6 か月、1 か月、1 週間、1 日、または過去 6 時間など、どの時点でも正確に 1 回のクリックがあります。したがって、私のデータセットは次のとおりです。
Time Click
2012-01-01 01:00:00 1
2012-01-01 02:00:00 1
2012-01-01 03:10:00 1
2012-01-01 03:20:01 1
2012-06-02 11:00:00 1
2012-12-01 01:00:00 1
2013-05-01 12:00:00 1
グラフは、利用可能なデータに応じて x 軸を調整できる必要があります。たとえば、日のデータをチェックしている場合は HH:00 の範囲を表示する必要があり、週のデータを探している場合は月-火-水などの範囲を表示する必要があります。
サンプルコードは次のようになります。
`chart.xAxis.showMaxMin(false).tickFormat(function(d) { return d3.time.format('%x')(new Date(d)) });
chart.yAxis.tickFormat(d3.format(',.2f'));
d3.select('#chart1 svg')
.datum(jsonData)
.call(chart);`
データポイントの集計を処理する方法は? データセットに集計を提供する必要がありますか、またはグラフに何らかの機能を提供することでそれを行うことができます。
アップデート
ロールアップを試してみたところ、データにある程度の集計ができることがわかりました。
rollup = d3.nest().key(function(d) {
return (new Date(+d[0])).getMonth();
}).rollup(function(d) {
return d3.sum(d, function(e) { return +e[1]; });
}).entries(jsonDataValues)
.map(function(d) {data.push([d.key,d.values])});
月単位でデータを集計します。指定された範囲に合わせて調整できるように、より柔軟になるように変更する必要があります (ドメインは私の友人ですか?)