2016-04-04 5 views
0

私は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); 
} 

答えて

0

addUserPoint()の空のオブジェクトにchartDataを設定します。

function addUserPoint() { charData = {}; if (chartData.getNumberOfColumns() === 2) { ... } }

これは、新しいデータを追加し、いつでも、それは以前のデータをクリアし、あなたが新鮮な新しいデータセットを持っていることを確認します。このような)

+0

? 'chartData =" "' –

+0

私の投稿を編集しました。 JSONの場合は空のオブジェクトでなければなりません –

+0

ああ、意味があります! 'index.js:2485 Uncaught TypeError:chartData.getNumberOfColumnsは関数ではありません。 ' –

関連する問題