0

複数のデータセットを比較するグラフを作成したいと思います。セット内の各オブジェクトには、「2013-01-11T00:00:00Z」の形式のY軸のfloat値とX軸の値があります。

私のデータ構造は次のとおりです。

{
  data_set_a:
    line_1:
      [ { x: x, y: y}, ... ]
    line_2:
      [ { x: x, y: y}, ... ]
  data_set_b:
    line_1:
      [ { x: x, y: y}, ... ]
    line_2:
      [ { x: x, y: y}, ... ]

   ...
  }

注:何かがより理にかなっている/これをより簡単にする場合、私はデータセットを完全に制御できます。

以下の質問については、data_set_aの内容をグラフ化することにのみ関心があります。残りは別々のグラフになります。

  1. X軸が日付を処理している間、ここで時間スケールに対して順序スケールを使用し、time.format.iso.parseで解析しますか?「HH:MM」を比較し、X軸テキストのカスタムフォーマットを指定するようにd3に指示する方法はありますか(つまり、12pm | | | 1pmなど。|は15m間隔の目盛りです)。または、このタスクは、d3に渡す前に日付を処理する順序スケールに適していますか?

  2. チャートに表示されるすべての線に使用する単一の線を設定することを示す部分的な例に沿って従おうとしています。シリーズのすべてのラインに適用される範囲を考慮に入れるように、スケールとドメインを設定するにはどうすればよいですか?

これが私が今のところいるところです:https ://gist.github.com/87e52b278c3ab2ada196 。私のグラフはまだきれいではないとだけ言っておきましょう。前もって感謝します。

4

1 に答える 1

1

まず、D3にはすぐに使用できるタイム スケールが付属しています。それらをチェックしてください。

次に、すべてのデータ ポイントに対してスケールを正しく設定するには、すべてのデータ ポイントの境界を計算する必要があります。

var data = /* your data from above */,
    points = [].concat(d3.values(data.data_set_a)),
    x_extent = d3.extent(points, function(d) { return d.x; }),
    y_extent = d3.extent(points, function(d) { return d.y; });

その情報があれば、体重計を正しくセットアップできるはずです。

于 2013-01-17T16:35:16.433 に答える