2013-04-17 8 views
5

Von einem Ajax-Aufruf ich folgende Daten zurück:Highcharts Serie Datenarray

18,635,21,177,20,165,22,163,24,162,25,145,19,143,23,139,26,112,27,110,28,104,30,91,29,88,31,68,32,57,36,55,34,53,33,51,35,46,37,44,39,42,43,39,42,39,41,38,38,37,44,36,45,34,48,31,40,31,47,27,49,23,46,21,50,21,52,17,55,17,53,16,51,15,54,12,58,6,57,6,59,4,63,4,56,3,62,2,64,2,100,2,68,1,78,1,60,1,97,1,70,1,65,1,69,1,71,1 

Davon jede gerade Zahl der Schlüssel und jede ungerade der Wert sein sollte. Aber ich habe keine Ahnung, wie man es als Highcharts analysiert. Irgendwie habe ich den Schlüssel "slice", wenn ich JSON.parse benutze und der einzige Weg, wie ich es normal arbeiten lassen kann, ist es direkt in die Serien-Daten zu setzen (nach der Trennung der ungeraden und geraden in separate Arrays) :

[names[0] + ' years old', parseFloat(values[0])] 

Welcher ist groß. Aber dann muss ich die Arrays irgendwie durchschleifen, alles in die Seriendaten pushen und ich weiß nicht, wie ich das machen soll. Wenn ich mit diesen Daten eine for-Schleife mache, wie füge ich in die Highcharts-Serie Daten ein?

+0

Ist die Trennung der Daten in zwei Arrays Ihr Problem? kannst du etwas Code teilen? – shakib

Antwort

13

Wenn Sie feststellen, dass Reihendaten in einem Array haben, können Sie es wie folgt bearbeiten:

var myData = [18, 635, 21, 177, 20, 165, 22, 163, 24, 162, 25, 145, 19, 143, 
      23, 139, 26, 112, 27, 110, 28, 104, 30, 91, 29, 88, 31, 68, 32, 
      57, 36, 55, 34, 53, 33, 51, 35, 46, 37, 44, 39, 42, 43, 39, 42, 
      39, 41, 38, 38, 37, 44, 36, 45, 34, 48, 31, 40, 31, 47, 27, 49, 
      23, 46, 21, 50, 21, 52, 17, 55, 17, 53, 16, 51, 15, 54, 12, 58, 6, 
      57, 6, 59, 4, 63, 4, 56, 3, 62, 2, 64, 2, 100, 2, 68, 1, 78, 1, 60, 
      1, 97, 1, 70, 1, 65, 1, 69, 1, 71, 1]; 
var mySeries = []; 
    for (var i = 0; i < myData.length; i++) { 
     mySeries.push([myData[i], myData[i + 1]]); 
     i++ 
    } 

Sobald Sie Ihre Seriendaten in ‚mySeries‘ haben, können Sie einfach Ihre Kartendaten eingestellt werden:

series:[{ 
    data: mySeries 
}] 

Alternativ, wenn Sie die Daten nach dem Rendern der Grafik hinzufügen möchten, können Sie die Seriendaten hinzufügen, dynamisch mit:

chart.series[0].setData(mySeries); 

http://jsfiddle.net/Cm3Ps/ (klicken Sie auf die Schaltfläche "Meine Daten hinzufügen").

1

Eigentlich benötigt die Funktion Parameter als Array von int.

Angenommen, Sie eine Funktion

drawChartFunction(data) { 
    // some code here 
    series: [{ data: data}] 
} 

erhalten Sie können es versuchen:

array = {9,8,7,6} 
var series = []; 
for (var i = 0; i < array.length; i++) { 
    series.push([i, array.[i]]); 
} 

Nach dem for ausgeführt, Ihre series mag

0,9 
1,8 
2,7 
3,6 

Dann rufen Sie drawChartFunction(series)

So ist Ihr Diagramm gezeichnet mit 4 Punkten 0 1 2 3 mit ihren Werten 9 8 7 6

Verwandte Themen