私はGoogle Visualization APIを使用しています。 ajaxコールfunction drawchart()
の値に基づいてチャートが生成されます。新しいデータを追加する前にチャートをクリアするには?
ユーザはテキストボックスに値を入力し、この点がグラフにも追加されます(function addUserPoint()
)。 function addUserPoint2()
が自動生成され、マップにも追加されます。 adduserpointとadduserpoint2の結果には、それらの間に行があります。
私の問題:ユーザーが新しいポイントをもう一度追加すると、チャートはそれらの値を追加し、以前に追加されたポイントがチャートに残ります。新しいポイントを追加する前にadduserpointとadduserpoint2の結果を取り除きたい。どうすればこれを達成できますか?
var chartData;
var options2;
function addUserPoint() {
if (chartData.getNumberOfColumns() === 2) {
chartData.addColumn('number', '');
}
var aa= $("#wbtotala").text();
var bb= $("#wbtotalb").text();
chartData.addRow([
parseFloat(bb),
null,
parseFloat(aa)
]);
myLineChart.draw(chartData, options2);
}
function addUserPoint2(){
if (chartData.getNumberOfColumns() === 2) {
chartData.addColumn('number', '');
}
myLineChart.draw(0,0, options2);
var aa2 = fweight;
var bb2= fcg;
chartData.addRow([
parseFloat(bb2),
null,
parseFloat(aa2)
]);
myLineChart.draw(chartData, options2);
}
function drawchart() {
document.getElementById('addPoint').addEventListener('click', addUserPoint, false);
document.getElementById('addPoint').addEventListener('click', addUserPoint2, false);
chartData = new google.visualization.DataTable();
chartData.addColumn('number', 'Sli');
chartData.addColumn('number', 'Weight');
for (var i = 0; i < chartdatax.length; i++) {
chartData.addRow([parseFloat(chartdatax[i]), parseFloat(chartdatay[i])]);
};
options2 = {
height: 500,
hAxis: {
title: 'AB',
gridlines: {
count: 20
}
},
vAxis: {
title: 'CD',
gridlines: {
count: 15
}
},
chartArea: {top:40, width: "70%", height: "75%"},
legend: { position: 'none' },
pointSize: 5
};
myLineChart = new google.visualization.LineChart(document.getElementById('myChart2'));
myLineChart.draw(chartData, options2);
}
? 'chartData =" "' –
私の投稿を編集しました。 JSONの場合は空のオブジェクトでなければなりません –
ああ、意味があります! 'index.js:2485 Uncaught TypeError:chartData.getNumberOfColumnsは関数ではありません。 ' –