我使用 chartjs 创建了一个基本的条形图,它工作正常。现在我想在基于时间的间隔上更新值。我的问题是,创建图表后,我不知道如何正确更新其值…
我的代码:
var ctx = $("#myChart").get(0).getContext("2d");
var dts = [
{
fillColor: "rgba(220,220,220,0.5)",
strokeColor: "rgba(220,220,220,1)",
data: [0, 0, 0, 0, 0]
}
];
var data = {
labels: ["Core#1", "Core#2", "Core#3", "Core#4", "Total"],
datasets: dts
};
var chart = new Chart(ctx);
chart.Bar(data);
//test code
setInterval( function () {
data.datasets[0].data = [random(), random(), random(), random(), random()];
chart.Bar(data);
},2000);
在测试代码中,我正在使用 datasets[0].data
更新值 - 这是正确的方法吗?问题在于,每次我调用 chart.Bar()
时,值都会重置为 0,然后动画为随机值(就像我正在重新创建图表一样)。这样,所有动画总是从 0 到看起来很奇怪的值。我希望如果我将一个值从 50 更新到 10,条形图将从 50 下降到 10,而不是设置为 0,然后动画到 10。
我在文档中没有找到任何关于此的内容……我做错了什么还是这个库不可能?
原文由 adanlif 发布,翻译遵循 CC BY-SA 4.0 许可协议
更新: 看起来 chartjs 已经更新(见下面的评论)。上面有一些看起来很不错的例子:
这是使用新数据更新折线图的示例:http: //jsbin.com/yitep/5/edit
以下是我们如何更新折线图上的现有数据:http: //jsbin.com/yitep/4/edit
原帖
截至 2013 年 11 月,更新图表的选项似乎很少。
这里有一个 很好的例子(下面重复)向折线图添加新点。仍然有点跳动,但还不错。但是,我认为效果可能取决于您使用的图表。
看起来这确实在开发管道中的某个地方。不过,我还没有看到任何发布日期的迹象: https ://github.com/nnnick/Chart.js/issues/13 [截至 2014 年 7 月 26 日关闭]
JS
HTML