gpt4 book ai didi

javascript - Chart.js 加载新数据

转载 作者:行者123 更新时间:2023-12-03 06:38:38 25 4
gpt4 key购买 nike

我正在尝试加载新数据(以隐藏特定图形),我尝试了 destroy() 函数 like here但它不起作用,我不知道我错过了什么。

我想加载一项数据(共两项),但我想选择可见的一项。

HTML

<canvas id="linechart"></canvas>
<div>
<a id="current">Current</a>
<a id="forecast">Forecast</a>
</div>

JavaScript

$(document).ready(function(){
var canvas = document.getElementById('linechart');
var ctx = canvas.getContext('2d');
var current = [800, 1350, 1400, 1600, 2600, 3100];
var forecast = [400, 1050, 1200, 1300, 1800, 2400];
var data = {
labels: ["2", "4", "8", "12", "16", "20"],
pointDotRadius: 0,
pointRadius: 0,
pointBorderWidth : 0,
pointHitRadius: 0,
datasets: [
{
label: "current",
fillColor: "rgba(220,220,220,0)",
strokeColor: "#7bc775",
pointColor: "#7bc775",
data: current,
},
{
label: "forecast",
fillColor: "rgba(151,187,205,0)",
strokeColor: "#fed477",
pointColor: "#fed477",
data: forecast,
}]
};
var myLineChart = new Chart(ctx, {
type: 'line',
data: data
});
var step = 800;
var max = 3200;
var start = 0;
window.myObjBar = new Chart(ctx).Line(data, {
scaleOverride: true,
scaleSteps: Math.ceil((max-start)/step),
scaleStepWidth: step,
scaleStartValue: start,
responsive : true
});
$('#current').click(function(){
current = [];
if(myLineChart!== null){
myLineChart.destroy();
myLineChart = new Chart(ctx, {
type: 'line',
data: data
});
}
});
});

<强> Fiddle Link

最佳答案

我使用最新版本的 Charts.js 找到了解决您问题的方法

使用 destroy 并将数据存储在数组中。当您单击该控件时,它会破坏图表并使用所选数据重建一个新图表

var mychart = new Chart(ctx,config);
$('.selector').click(function(){
data.datasets = [datasets[$(this).data('index')]];
if(mychart!== null){
mychart.destroy();
mychart = new Chart(ctx, config);
}
});

在此处查看更新的 fiddle :https://jsfiddle.net/3563ko2t/6/

关于javascript - Chart.js 加载新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38075960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com