APIchart.js允许用户编辑加载到其中的数据集的点,例如:
.update( )在Chart实例上调用update()将使用任何更新的值重新渲染图表,允许您编辑多个现有点的值,然后在一个动画渲染循环中渲染它们.
.addData( valuesArray, label )在Chart实例上调用addData(valuesArray,label),为每个数据集传递一个值数组,以及这些点的标签.
.removeData( )在Chart实例上调用removeData()将删除图表上所有数据集的第一个值.
所有这些都很棒,但我无法弄清楚如何加载一个全新的数据集,消除旧的数据集.文档似乎没有涵盖这一点.
我使用Chart.js库绘制条形图,它工作正常,但现在我想破坏条形图并在同一画布中制作折线图.我尝试过这两种方法来清除画布:
var grapharea = document.getElementById("barChart").getContext("2d");
grapharea.destroy();
var myNewChart = new Chart(grapharea, { type: 'radar', data: barData, options: barOptions });
Run Code Online (Sandbox Code Playgroud)
第二种方式:
var grapharea = document.getElementById("barChart").getContext("2d");
grapharea.clear();
var myNewChart = new Chart(grapharea, { type: 'radar', data: barData, options: barOptions });
Run Code Online (Sandbox Code Playgroud)
我称之为正确吗?OnButtonClick我调用这个使用相同画布的函数.
我正在使用Bootstrap 3选项卡进行页面布局,使用Chart.js为项目创建圆环图.
但是,在更改为带有图表的选项卡时,图表不会加载.有时,当你开始检查谷歌浏览器中的元素时,它们会加载.如果它们加载到第一个可见选项卡上,它们似乎只会渲染.
chrome控制台中的chart.js javascript存在一个已知错误:
未捕获的IndexSizeError:无法在'CanvasRenderingContext2D'上执行'arc':提供的半径(-0.5)为负数.
我认为这是因为Bootstrap将标签可见性设置为无,因此图表无法正确呈现或某些内容......
应该看起来像这样:

有没有其他人有这个问题,如果有的话; 有解决方法吗?
...或者我应该寻找另一个与Bootstrap选项卡很好地匹配的图表脚本.
先感谢您 :)
我最近向折线图添加了放大和平移功能。现在我想添加一个重置按钮或类似的东西,当按下图形时,它会恢复到正常位置/形状。目前我正在绘制它的动态数据,每 10 秒更新一次。
先感谢您。
我试图确定每次用户在 ChartJS 中选择新图表类型时重新加载画布的正确方法,现在它不会更改图表类型:
chartJs.js
var ctx = document.getElementById("myChart").getContext("2d");
ctx.canvas.width = 600;
ctx.canvas.height = 200;
var determineChart = document.getElementById("chartType");
if( determineChart = "line") {
var myChart = new Chart(ctx).Line(data, options);
myChart.destroy();
}
else if (determineChart = "column"){
var myChart = new Chart(ctx).Bar(data, options);
}
Run Code Online (Sandbox Code Playgroud)
索引.html
<select id="chartType">
<option value="line">Line</option>
<option value="column">Column</option>
<option value="area">Area</option>
<option value="areaspline">Area Spline</option>
<option value="pie">Pie(Test)</option>
</select>
Run Code Online (Sandbox Code Playgroud)