【发布时间】:2017-07-05 03:31:48
【问题描述】:
我是 d3 的新手并使用折线图,我想在其中查看阈值 Fiddler 之间的图表。该图表适用于 y.domain([min,max]),因为我想用我自己的阈值查看图表,这条线从图表上跑了出来,我不知道为什么会这样。任何帮助深表感谢。
【问题讨论】:
标签: javascript d3.js
我是 d3 的新手并使用折线图,我想在其中查看阈值 Fiddler 之间的图表。该图表适用于 y.domain([min,max]),因为我想用我自己的阈值查看图表,这条线从图表上跑了出来,我不知道为什么会这样。任何帮助深表感谢。
【问题讨论】:
标签: javascript d3.js
如果您想避免图形区域溢出线条,您可能需要使用clip-path。我稍微调整了你的代码并添加了剪辑路径。
svg.append("clipPath")
.attr("id", "clip-path")
.append("rect")
.attr("width", width)
.attr("height", height);
svg.append("path") // Add the valueline path.
.attr("d", valueline(data))
.attr("clip-path", "url(#clip-path)");
这是相同的 JSFiddle 链接:http://jsfiddle.net/vxo1qsf9/2/
如果这是您要找的,请告诉我。 :)
【讨论】:
您得到一个损坏的图表的原因是,4 月 26 日之后的值小于您定义的最小值 75。所以该图实际上是在绘制,但您看不到线条,因为它位于您定义的 svg 区域下方。
这是我的 2 美分。
只需使用正确的值更新数据。以便您可以查看最后的数据。
{
date: "1-May-12",
close: "90.13"
}
或
只需将min 值更新为最小预期值。
var thresholdValues = {
minValue: 50,
maxValue: 100
};
这就是我所做的,看起来效果很好。这是相同http://jsfiddle.net/vxo1qsf9/1/的小提琴链接
如果您想从数据中自动找到最小值和最大值,请使用 d3 的原生函数 d3.extent(),它返回一个包含该数组的 min 和 max 值的数组,或者您也可以尝试查找最小值和最大值分别使用d3.min() 和d3.max()。
Here 是 d3 数组方法的文档链接。
希望这会有所帮助! :)
【讨论】: