Chartjs 2 缩放大量数据点
Chartjs 2 scaling lots of data points
我正在尝试呈现包含 24 小时数据(每 30 秒收集一次)的折线图。我无法从 docs 中弄清楚如何让它很好地扩展。
文档说:
When building its ticks, it will automatically calculate the most comfortable unit base on the size of the scale.
但我无法按比例缩放折线图 "comfortably"。我不确定这是什么意思,但我得到的数据点太多而无法很好地呈现。所以我想我正在寻找一种删除数据点的方法(使用 chartjs,而不是手动滚动)。
我正在用我的选项做这样的事情;
const options = {
spanGaps: false,
scales: {
xAxes: [{
type: 'time',
time: {
displayFormats: {
quarter: 'HH:mm'
}
}
}]
}
};
有什么地方可以看吗?
如果你对'dropping data points'还有兴趣,可以看看最近又活跃的github问题。参见 link
https://github.com/chartjs/chartjs-plugin-zoom/issues/75.
在那里你可以找到一个今年早些时候用 js 编写的插件,用于过滤数据集以仅包含可见的数据集;它可以使用您自己的过滤规则进行自定义。在将数据集发送到 javascript 之前,我亲自在我的后端过滤数据集....
否则,如果您想以 'scalable' 方式呈现更多时间序列数据,为什么不使用 Chartjs 时间 series/financial 线图?您可以在此处查看官方文档...
http://www.chartjs.org/samples/latest/scales/time/financial.html ...这是折线图的变体;查看源代码。
警告是,如果您不介意没有交互式工具提示,请按原样使用它(源代码示例)。
尽管如此,除了 xnakos 的评论之外,关于更大数据集的性能渲染的最后一个想法(我想到了一些额外的东西......),您可以尝试设置更小的 pointRadius(非零)的组合,而不是渲染线条。我发现这个技巧对于在屏幕上分配点也很有用。在您的数据集中,只需设置 showLine = 'false'
并查看如何让它为您工作。
我正在尝试呈现包含 24 小时数据(每 30 秒收集一次)的折线图。我无法从 docs 中弄清楚如何让它很好地扩展。
文档说:
When building its ticks, it will automatically calculate the most comfortable unit base on the size of the scale.
但我无法按比例缩放折线图 "comfortably"。我不确定这是什么意思,但我得到的数据点太多而无法很好地呈现。所以我想我正在寻找一种删除数据点的方法(使用 chartjs,而不是手动滚动)。
我正在用我的选项做这样的事情;
const options = {
spanGaps: false,
scales: {
xAxes: [{
type: 'time',
time: {
displayFormats: {
quarter: 'HH:mm'
}
}
}]
}
};
有什么地方可以看吗?
如果你对'dropping data points'还有兴趣,可以看看最近又活跃的github问题。参见 link
https://github.com/chartjs/chartjs-plugin-zoom/issues/75.
在那里你可以找到一个今年早些时候用 js 编写的插件,用于过滤数据集以仅包含可见的数据集;它可以使用您自己的过滤规则进行自定义。在将数据集发送到 javascript 之前,我亲自在我的后端过滤数据集....
否则,如果您想以 'scalable' 方式呈现更多时间序列数据,为什么不使用 Chartjs 时间 series/financial 线图?您可以在此处查看官方文档...
http://www.chartjs.org/samples/latest/scales/time/financial.html ...这是折线图的变体;查看源代码。 警告是,如果您不介意没有交互式工具提示,请按原样使用它(源代码示例)。
尽管如此,除了 xnakos 的评论之外,关于更大数据集的性能渲染的最后一个想法(我想到了一些额外的东西......),您可以尝试设置更小的 pointRadius(非零)的组合,而不是渲染线条。我发现这个技巧对于在屏幕上分配点也很有用。在您的数据集中,只需设置 showLine = 'false'
并查看如何让它为您工作。