更新 d3 线图显示不正确的数据,可能是由于路径转换
Updating d3 line graph shows incorrect data, perhaps due to path transitions
感谢 Mike Bostock 的路径转换教程 (here and here),我拼凑了一个使用 d3 更新的工作图。然而,当它从一个点到另一个点时,该图似乎歪曲了这些点的值。下面是一个视觉示例。正如您将看到的值:
0, -1, -4, -4, 4, -2, -2, 0 , -3
但图表并未传达该模式。相反,它看起来更像:
0, -1, -4, 2, -2, -1, -3
这是一个 jsfiddle,我的代码生成了以上内容(但具有不同的值):http://jsfiddle.net/q5onmfbd/9/
有人知道会发生什么吗?我感觉它处理路径转换,但我可能错了。
您的 interpolation is using "basis" - 这是一个 b 样条 - 它平滑并适合 "around" 您的点。
您是要使用 "linear" interpolation 吗?
line = d3.svg.line().interpolate("linear").x((d) ->
x(new Date(formatDate(d.created_at)))
).y((d) ->
y(d.value)
)
感谢 Mike Bostock 的路径转换教程 (here and here),我拼凑了一个使用 d3 更新的工作图。然而,当它从一个点到另一个点时,该图似乎歪曲了这些点的值。下面是一个视觉示例。正如您将看到的值:
0, -1, -4, -4, 4, -2, -2, 0 , -3
但图表并未传达该模式。相反,它看起来更像:
0, -1, -4, 2, -2, -1, -3
这是一个 jsfiddle,我的代码生成了以上内容(但具有不同的值):http://jsfiddle.net/q5onmfbd/9/
有人知道会发生什么吗?我感觉它处理路径转换,但我可能错了。
您的 interpolation is using "basis" - 这是一个 b 样条 - 它平滑并适合 "around" 您的点。
您是要使用 "linear" interpolation 吗?
line = d3.svg.line().interpolate("linear").x((d) ->
x(new Date(formatDate(d.created_at)))
).y((d) ->
y(d.value)
)