Chart.js 2.0中的AddData

时间:2015-07-06 15:34:32

标签: javascript chart.js

我正在尝试使用Chart.js 2.0创建双Y轴。 我在文档中看到AddData的工作方式与Chart.js 1.0相同。但是当我在浏览器上运行时,我收到消息" xxxxxxxx.AddData不是函数"。

如果有帮助,这就是我正在使用的https://jsfiddle.net/96u30Lht/ (我找不到我的小提琴中的chart.js 2 lib作为资源文件的URL,这应该是画布保持黑色的原因)

1 个答案:

答案 0 :(得分:2)

我正在使用dev分支中的v2.0.0(文件头读取2.0.0-alpha,我正在查看的文件是https://github.com/nnnick/Chart.js/blob/f3eb6f4a433b4f34a582842dcf7b42f710861a7d/Chart.js

你需要做一些改变才能让你的小提琴上班

使图表类型成为选项

我认为v2.0只有一个适用于所有图表类型的构造函数。所以

  

chartdata = new Chart(ctx).Line({

应该是

chartdata = new Chart(ctx, {
    type: "line",

为第二个y轴添加类型

  

scaleType:“linear”

type: "linear",

type是属性名称。它不会对第一个y轴造成任何问题,因为它在那里是可选的(第一个实例上的scaleType: "linear"实际上没有做任何事情而你可以放弃它)

删除window.onload

您的小提琴已设置为执行onLoad

更改方法签名

据我所知,代码中的方法签名已针对addData进行了更改。现在如下(从代码中) - 请注意,这可能会随时更改

  

//将数据添加到给定数据集
  // @param数据:要添加的数据
  // @param {Number} datasetIndex:要添加到的数据集的索引   // @param {Number} index:数据的索引
  addData:function addData(data,datasetIndex,index)

所以你的setInterval的更好版本将是

setInterval(function () {
    var latestlabel = chartlabel[6];

    chartdata.addData(12, 0, latestlabel);
    chartdata.addData(5, 1, latestlabel);
    chartdata.removeData(0, 0);
    chartdata.removeData(1, 0);

}, 7000);

https://jsfiddle.net/bsgc9tu7/