我已经从CanvasJS添加了一个饼图。它带有预先删除的现有数据点,我想动态添加自己的数据。
let chart = new CanvasJS.Chart("chartContainer", {
interactivityEnabled: false,
backgroundColor: "#272953",
animationEnabled: false,
title: {
text: "Portfolio",
fontColor: "#fff",
fontFamily: "tahoma"
},
data: [{
type: "pie",
startAngle: 240,
yValueFormatString: "##0\"%\"",
indexLabel: "{label} {y}",
dataPoints: [
// { y: 79.45, label: "Google", indexLabelFontColor: "#fff", noOfUnits: 0, ticker: 'GOOGL' } <----- example
]
}]
});
window.onload = loadPieChart();
function loadPieChart() {
chart.render();
}
let dataPoints = chart.data[0].dataPoints;
因此,当我添加新股票时,带有数据的对象被推到dataPoints
。
我遇到的问题是,当我去删除股票时,它会从dataPoints
中删除自己,这很好但它仍显示在饼图中。
如果将dataPoints
登录到控制台,则为空数组。
但是如果您登录chart.data[0].dataPoints
,它仍然具有先前添加的库存。
用于添加库存:
dataPoints.push({ y: stockPercentage,
label: stockObject["name"],
indexLabelFontColor: "#fff",
noOfUnits: stockObject["noOfUnits"],
ticker: stockObject["ticker"] })
用于删除库存:
function deleteStock(e) {
//remove stock from Datapoint in pie chart
dataPoints = dataPoints.filter(stock => currentRow.childNodes[1].textContent !== stock['ticker']);
chart.render();
}
无法理解为什么它要在dataPoints
中添加和删除对象但不能在饼图中删除,以及即使您登录chart.data[0].dataPoints
,即使在let dataPoints = chart.data[0].dataPoints;
之后,数据仍然存在的事实>
我必须犯一个愚蠢的错误。
预先感谢
我已经从CanvasJS添加了一个饼图。它带有预先删除的现有数据点,我想动态添加自己的数据。让图表= new CanvasJS.Chart(“ chartContainer”,{...
尝试在deleteStock
函数中添加它:
如果我们将过滤结果分配给图表数据集怎么办