gpt4 book ai didi

javascript - 如何为 chart.js(条形图)动态推送数据集?

转载 作者:可可西里 更新时间:2023-11-01 02:00:14 25 4
gpt4 key购买 nike

我正在使用 chartjs(条形图)来显示一些数据。我正在尝试将数据动态添加到 datasets 数组,但它不起作用。

例如,假设我在数据集数组中有 2 个对象,我动态创建了这个对象并试图将他插入数据集(从 Chrome 控制台)在页面加载并且图表已经启动之后。

var e = {
fillColor : "#efefef",
strokeColor : "#efefef",
highlightFill: "#efefef",
highlightStroke: "#efefef",
data : [randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor(),randomScalingFactor()]
}

然后

barChartData.datasets.push(e)

我也尝试过 window.myBar.update()但还是什么也没发生。

你知道这个问题吗?谢谢,

最佳答案

我认为您不能使用 addData 添加系列 - 它用于向现有系列添加点/条。

但是您可以将新系列直接插入到图表对象中。像这样使用图表对象和新数据集

var ctx = document.getElementById("chart").getContext("2d");
var myBarChart = new Chart(ctx).Bar(data);

var myNewDataset = {
label: "My Second dataset",
fillColor: "rgba(187,205,151,0.5)",
strokeColor: "rgba(187,205,151,0.8)",
highlightFill: "rgba(187,205,151,0.75)",
highlightStroke: "rgba(187,205,151,1)",
data: [48, 40, 19, 86, 27, 90, 28]
}

插入新数据集的代码是

var bars = []
myNewDataset.data.forEach(function (value, i) {
bars.push(new myBarChart.BarClass({
value: value,
label: myBarChart.datasets[0].bars[i].label,
x: myBarChart.scale.calculateBarX(myBarChart.datasets.length + 1, myBarChart.datasets.length, i),
y: myBarChart.scale.endPoint,
width: myBarChart.scale.calculateBarWidth(myBarChart.datasets.length + 1),
base: myBarChart.scale.endPoint,
strokeColor: myNewDataset.strokeColor,
fillColor: myNewDataset.fillColor
}))
})

myBarChart.datasets.push({
bars: bars
})

myBarChart.update();

fiddle - http://jsfiddle.net/pvak6rkx/ (3 秒后插入新数据集)

关于javascript - 如何为 chart.js(条形图)动态推送数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31059399/

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