我正在使用chart.js
渲染图表是否可以通过画布对象访问不同功能的图表?如果单击某个按钮,我想更新它。
谢谢!
答案 0 :(得分:2)
对于像这样初始化的图表
var myNewChart = new Chart(ctx).Line(data);
myNewChart.chart.canvas是你的画布对象。请注意,您必须处理工具提示显示/删除,动画(初始绘制,如果启用)和图表调整大小时发生的重绘。
虽然您也可以使用document.getElementById("myId")
使用document.getElementById("myId").getContext("2d")
和上下文访问画布,但您无法访问图表函数,例如.update(),. addData()等..为此你需要图表实例。
由于每个可用的图表实例也存储在Chart.instances中(因为Chart是全局的),你可以这样做
for (instance in Chart.instances) {
if (Chart.instances[instance].chart.canvas === document.getElementById("myId")) {
console.log("found my chart instance")
console.log(Chart.instances[instance])
}
}
获取图表实例。