Javascript D3折线图在最大值处给出错误值
我有一个数字数组,顺序从15上升到20,然后下降到16。从15到19,它们都在图表中显示正确的位置,但一旦后续数字降低,它将显示错误的值 下面是一个示例,正如您所看到的,当x轴位于5,而大约为19.7ish时,它不会达到20: 有人知道问题是什么吗Javascript D3折线图在最大值处给出错误值,javascript,d3.js,Javascript,D3.js,我有一个数字数组,顺序从15上升到20,然后下降到16。从15到19,它们都在图表中显示正确的位置,但一旦后续数字降低,它将显示错误的值 下面是一个示例,正如您所看到的,当x轴位于5,而大约为19.7ish时,它不会达到20: 有人知道问题是什么吗 谢谢,这是因为你正在使用“基本”插值,它使用贝塔样条曲线平滑极端峰值,这就是你所看到的 使用“线性”可以使用直线而不是曲线 var lineGen = d3.svg.line()
谢谢,这是因为你正在使用“基本”插值,它使用贝塔样条曲线平滑极端峰值,这就是你所看到的 使用“线性”可以使用直线而不是曲线
var lineGen = d3.svg.line()
.x(function(d) {
return xScale(d.time);
})
.y(function(d) {
return yScale(d.price);
})
.interpolate("linear");
感谢您的回复,并帮助我了解此问题与插值有关!我想,在不平滑极端峰值的情况下实现平滑曲线是很困难的?我能看到的唯一选择是单调,根据设计,它不能完全满足我的标准。你可以尝试使用“基数”,这意味着曲线将通过你的每个点,但代价是稍微不那么“连续”,虽然它在数学上仍然是连续的,因为每个点的一阶导数在点的两边都是相同的。这个网站给出了各种不同类型的例子:基数绝对是最好的选择。再次感谢:)