我有一個chart.js的線圖。我想刪除最後一點,但方法removeData()對摺線圖沒有參數,而對於極座標圖,它確實支持removeData(atIndex)。因此,對於折線圖,removeData()僅默認刪除第一個點。javascript chart.js刪除最後一點
如何只刪除最後一點而不必先刪除所有數據?
我有一個chart.js的線圖。我想刪除最後一點,但方法removeData()對摺線圖沒有參數,而對於極座標圖,它確實支持removeData(atIndex)。因此,對於折線圖,removeData()僅默認刪除第一個點。javascript chart.js刪除最後一點
如何只刪除最後一點而不必先刪除所有數據?
很抱歉,如果這也不行,第一次使用的jsfiddle但似乎工作,當我在本地運行:
所以我在這裏做的是我創建初始圖,那麼當我點擊刪除按鈕時,它會獲取當前數據並將其分配給一個變量,在運行更新功能之前彈出最後一個值,然後將其分配回圖表數據。
HTML:
<canvas id="myChart" width="400" height="400"></canvas>
<button onclick="removeLast()">
Remove
</button>
JS:
var options = {};
var currData = {
labels: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
datasets: [
{
label: "Number of beers drunk in the last week",
data: [5, 7, 10, 4, 2, 8, 3]
}
]}
removeLast = function() {
dataArray = currData.datasets[0].data;
dataArray.pop();
console.log(dataArray);
currData.datasets[0].data = dataArray;
console.log(currData.datasets[0].data)
myLineChart.update();
}
var ctx = document.getElementById("myChart").getContext("2d");
var myLineChart = new Chart(ctx).Line(currData);
這應該在這兩個發行版本和公測工作。
您可以通過查看removeData
源代碼,使自己的 - 只使用pop
代替shift
myChart.removeLastPoint = function() {
this.scale.xLabels.pop();
this.scale.valuesCount--;
this.scale.fit();
Chart.helpers.each(this.datasets,function(dataset){
dataset.points.pop();
},myChart);
this.update();
}
其中myChart
是你的圖表對象。
這個偉大的工程!謝謝! – dsmvh
歡呼!很高興它有幫助。一旦確定它正常工作,您可能希望將其標記爲答案。 – potatopeelings