2013-06-17 9 views
5

Ich versuche, ein Liniendiagramm zu machen, aber Google Charts hält werfen diesen Fehler, wenn ich versuche, eine Reihe von Daten hinzuzufügen:Google Charts' addRows() Funktion nicht will, um ein Array akzeptieren

Error: Every row given must be either null or an array. @ ...corechart.I.js:162

Hier sind einige Beispielspalten, die ich ausprobiert habe. Die Spalten funktionieren einwandfrei und zeigen ein leeres Diagramm an, solange ich keine Zeilen hinzufüge.

var data = new google.visualization.DataTable(); 
     data.addColumn('number', 'timestamp'); 
     data.addColumn('number', 'JPY'); 
     data.addColumn('number', 'EUR'); 
     data.addColumn('number', 'SEK'); 
     data.addColumn('number', 'HKD'); 
     data.addColumn('number', 'CHF'); 
//So far so good 

Nun, egal wie ich versuche, ein Array mit addRows() übergeben, bekomme ich den Fehler. Ich habe hier ähnliche Fragen gefunden, aber sie haben alle aus Gründen fehlerhaften Codes versagt oder eine andere Methode verwendet, um den Code zu übergeben. Hier ist ein vereinfachter Testfall, der immer noch fehlschlägt.

data.addRows([1,2,3,4,5,6]); //Breaks the chart 

Ich habe auch versucht:

var myrow = new Array(1,2,3,4,5,6); 
data.addRows(myrow); 

Ich sehe nicht, wie ich diese nicht mehr buchstäblich eine Reihe machen. Ich habe auch zwei gleichzeitig bestanden, weil der gesamte Beispielcode mehrere Zeilen zu passieren scheint.

data.addRows([1,2,3,4,5,6], 
      [7,8,9,10,11,12]); 

Noch schlägt fehl.

Antwort

15

Einfach eins. Die addRows() -Methode erwartet, dass Sie ein Array von Arrays bereitstellen, nicht ein einzelnes Array für eine Zeile und keine separaten Parameter für jede Zeile. Siehe the example in der Dokumentation. Fixieren Sie Ihr Beispiel sollte es so aussehen:

data.addRows([[1,2,3,4,5,6], [7,8,9,10,11,12]]); 

Sie können auch die addRow() -Methode verwenden lieber, die zu einem Zeitpunkt nur eine Zeile dauert.

+0

Danke! addRow() ist auch für meinen Fall bequemer, danke auch dafür. – Joseph