Я добавил диаграмму ap ie из Canvas JS. Он поставляется с уже существующими точками данных, которые я удалил, и я хочу динамически добавлять свои собственные данные.
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
.
Проблема, с которой я сталкиваюсь, это когда я go удаляю акцию , он удаляется из dataPoints
, что нормально, но все равно отображается на графике p ie.
Если вы зарегистрируете 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
, но не удаляет в p ie график и тот факт, что если вы регистрируете chart.data[0].dataPoints
, данные все еще там даже после let dataPoints = chart.data[0].dataPoints;
Я, должно быть, совершаю глупую ошибку.
заранее спасибо