我想基于这个例子用D3创建一个多系列折线图.我的问题是,缺少一些值:
y x1 x2 x3
1 0.8 0.7
2 0.9 0.7
3 0.9 1.2 0.7
4 1.1 0.7
5 0.8 1.1 2.7
6 0.9 1.2 2.6
7 1.3 0.8
Run Code Online (Sandbox Code Playgroud)
我想得到以下图表:
应该忽略在开始或结束时缺少的点.我可以实现这一目标
d3.svg.line().defined(function (d) { return d.value; }
Run Code Online (Sandbox Code Playgroud)
但是如果一条线内缺少某些点,则不应该中断该线.使用上面的代码,绿线(x1)在y = 3处停止并在y = 5处继续.但是我希望将这些点连接起来.
没有使用line().defined()
,所有缺失的点都被处理,好像它们的价值一样0
.
这是代码,我曾经找到一种方法来实现该功能:
我认为在将数据传递给我的图表函数之前替换数据数组中的缺失点是没有办法的,因为我必须在图例和工具提示中显示值,我不能在这里显示计算值.因此,例如,如果我使用鼠标移动y = 4,则应该出现x1:-- x2:1.1 x3:0.8
在图例中(x1此处没有任何值).此外,(实际)点应显示为圆圈.我也不希望在内存中有两个数据表(一个包含实际测量数据,另一个包含图表行的增强数据).