javascript - 在 Chart js 中更新图表
问题描述
import Chart from "chart.js"
let AnalyticsChart = {
buildChart() {
let ctx = document.getElementById("analyticsChart");
let labels = ["sent", "delivered", "undelivered", "clicks"];
let total_sent = parseInt(document.getElementById("total-sent").dataset.totalSent);
let delivered = parseInt(document.getElementById("deilvered-count").dataset.deliveredCount);
let undelivered = parseInt(document.getElementById("undelivered-count").dataset.undeliveredCount);
let clicks = parseInt(document.getElementById("total-clicks").dataset.totalClicks);
let counts = [total_sent, delivered, undelivered, clicks]
let chart = new Chart(ctx, {
type: 'doughnut',
data: {
labels: labels,
datasets: [{
data: counts,
backgroundColor: [
'rgba(54, 162, 235, 0.5)',
'rgba(255, 206, 86, 0.5)',
'rgba(255, 99, 132, 0.5)',
'rgba(75, 192, 192, 0.5)'
]
}]
},
options: {
}
});
},
update(){
}
}
export default AnalyticsChart
在这段代码中,我想添加更新函数来更新图表。我想将图表变量传递给更新函数,我该怎么做?
像这样
update(chart) {
let total_sent = parseInt(document.getElementById("total-sent").dataset.totalSent);
let delivered = parseInt(document.getElementById("deilvered-count").dataset.deliveredCount);
let undelivered = parseInt(document.getElementById("undelivered-count").dataset.undeliveredCount);
let clicks = parseInt(document.getElementById("total-clicks").dataset.totalClicks);
let counts = [total_sent, delivered, undelivered, clicks]
chart.data.datasets.forEach((dataset) => {
dataset.data.push(counts) # How can I put individual counts value?
});
chart.update();
}
我的问题 1. 如何在 buildChart() 中传递图表变量来更新函数作为参数。2. 如何将单个计数元素放入 dataset.data.push(counts) 中?
解决方案
我不熟悉你的工具的方式。但它看起来像 java,所以你需要成员变量,并使用this
每个函数访问它们。
let AnalyticsChart = {
chart: null,
buildChart() {
/** omit **/
this.chart = new Chart(ctx, {
~
update() {
/** omit **/
this.chart.update();
对不起,我不太明白这个问题2。
你想推送数据,而不是更新?如果是这样,你不能只准备值。(我的意思是,你需要标签、背景......)
如果你只是想更新图表,那是小菜一碟
this.chart.data.datasets.forEach((dataset) => {
dataset.data = counts;
});
请记住,您有一个数据集。如果数据集不是动态的,我认为没有必要循环。
this.chart.data.datasets[0].data = counts;
推荐阅读
- h2o - 无法使用 H2O_connection_url 访问 H2O Flow
- javascript - 有没有办法知道当前正在执行哪个 React 组件生命周期方法
- angular - 在日期中添加 hh:mm:ss 后 P-Table 排序不起作用
- vim - 从参数列表中删除当前项后,在缓冲区中显示下一个参数列表项
- python - Python Selenium - 没有找到这样的元素......我迷路了
- python - 获取 Anaconda 中使用的包列表
- r-markdown - 文件路径和渲染观星表的问题
- reactjs - 过滤一系列产品
- encryption - DB2 加密函数 - 插入加密数据
- python - 当我使用 Pyautogui 输出代码时,我没有收到上传的单词