我有一些数据,其中可能没有几个数据点(=== null
)。要说明的是数据丢失,我使用的是line.defined
D3的功能(如显示这里)。问题是,有时我的某个点在任一侧都没有值,因此不会显示在图形上。
演示:http://jsfiddle.net/nxrdybdx/3/
如您所见,4月27日和29日的数据丢失,因此该行是不相交的。伟大的。4月28日的数据值为非空值,但不会显示。
我希望在4月28日显示一个点。我想念什么?我是否需要添加一个与每个点相对应的点(svg圆圈),以使每个点单独显示?
您只是在画线
svg.append("path") // Add the valueline path.
.attr("d", valueline(data));
如果要像您提供的示例一样绘制圆形,则需要添加
svg.selectAll(".dot")
.data(data.filter(function(d) { return d; }))
.enter().append("circle")
.attr("class", "dot")
.attr("cx", line.x())
.attr("cy", line.y())
.attr("r", 3.5);
参见http://jsfiddle.net/tgx48xzn/
PS:
如果您想隐藏空值点,则可以
.filter(function(d) { return d.close !== null })
参见http://jsfiddle.net/tgx48xzn/1/
PS 2
如果您只想显示孤立点,请像这样过滤
.filter(function(d, i) {
return d.close !== null && i > 1
&& data[i - 1].close === null
&& data[i + 1].close === null;
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句