0

我想创建比较多组数据的图表。集合中的每个对象都有一个 Y 轴浮点值和一个 X 轴值,格式为“2013-01-11T00:00:00Z”。

我的数据结构如下:

{
  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 进行解析?有没有办法告诉 d3 只比较“HH:MM”并为 X 轴文本指定一个自定义格式(即 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 回答