当我尝试构建时间轴图表(折线图+时间选项)时,我使用ChartJS 2.2.1遇到了问题。
我每隔5秒从服务器请求新值(格式为[时间,值]),我只想在屏幕上显示10个点,因此,当新数据进入时,我:
这里的问题是动画 - 图表没有向左移动 - 它只是在同一个地方重绘。
我的解决方案是让这种情况发生转变'动画是将数据添加到图表,移动最小和最大时间值以在屏幕上仅保留10个值(不删除它):
line_chart.chart.config.data.datasets[0].data.push({x: moment.utc(time).toDate(), y: value});
line_chart.update();
line_chart.config.options.scales.xAxes[0].time.min = line_chart.chart.config.data.datasets[0].data[line_chart.chart.config.data.datasets[0].data.length - onscreen_points].x;
line_chart.config.options.scales.xAxes[0].time.max = moment.utc(time).toDate();
我认为这不是最好的主意,我已经遇到过这种方法的麻烦。
这是其他任何解决方案吗?
P.S。在ChartJS 1.0中,这个'转移'动画适用于第一种方法。