これが私のデモです (恒久的なリンク。読み込みに数秒かかる場合があります)。
私はそれにいくつかの問題を抱えています:
クロスフィルター キーは上限を反映しません。したがって、x 軸には 1 つのステップがありません。
1 つのグループ ステップ サイズ ( ) を取得
group.all()[1] - group.all()[0]
し、それをd3.extent(group.all())[1]
. これは汚い修正であるため、デモには含めませんでした (データ ギャップによって存在する可能性があります)。グループステップサイズを取得/x軸を修正するための汚れの少ない方法は何ですか?バーの間に不均一なギャップがあります。異なるデータ セットとの x.scale の不一致を修正する方法がわかりません。
バーの幅を使用可能なグラフの幅に自動的に適応させたい。したがって、最適な棒の幅を計算し、(必要に応じて) グラフ自体のサイズを変更します。
bar_width = math.round(graph_width/data_length); graph_width = bar_width*data_length;
この条件下では、
x.scale
どのキー値に対しても不均等なデータを返す方法はありませんが、実際にはそうです。魔法はありません。私は単に何かを見落としています。しかし、それは何ですか?x.scale
がめちゃくちゃな場合は、範囲を設定する前にbar_width
からを差し引くと、問題が修正されます。ただし、 x.scale が期待どおりに動作していないことを検出する条件がわかりません。graph_width
x.scale