当在域()中具有相同值时,在折线图中不可见 - 使用D3

时间:2014-05-06 10:08:04

标签: javascript web svg d3.js charts

我正在尝试使用 D3 构建折线图,我正在使用this example

我面临的问题是,当我传递的数据集中linear.domain() fof y中包含相同的值时,折线图的线条会在< strong>水平轴,因此不可见。此外, y轴上不会打印任何数字。

以下是我的代码JSFiddle

metrics变量包含3个对象,三个具有相同值的不同时间戳。在结果面板上,线条将在 x轴之上绘制。如果将三个值中的一个从5更改为任何其他数字,则折线图将正常绘制。

metrics变量包含相同值的值时,如何在 y轴的中间画线?

由于

1 个答案:

答案 0 :(得分:0)

而不是行

      y.domain(d3.extent(metrics, function(d) { return d.close; }));

使用

      y.domain([d3.max(metrics, function(d) { return d.close; }) + 0.01,
                d3.min(metrics, function(d) { return d.close; }) - 0.01]);

问题是,如果y scale只是长度为0的段,如[5.0,5.0](或5.0之外的任何其他数字),d3完全混淆,并且拒绝在y轴上显示任何内容,并且放置5.0在原产地。

使用新代码:对于相同的情况获得以下内容:

enter image description here]

这里也是link to jsfiddle