Ich erstelle ein Liniendiagramm, das Daten aus verschiedenen JSON-Dateien enthält, und die unten stehenden Codes funktionieren, aber ich würde gerne wissen, wie ich diese JSON-Daten von verschiedenen Apis zu einem von a gruppieren kann für jede Schleife, um die Codes zu verkürzen.HighChart mit multiple JSON api data
//consider the vol1- vol10 looks like var vol1 = ['1123', '1234','5436'];
//because i have other method the convert it to an arrray
//Xvol1 is just something like Xvol1=["Jan","Feb","Mar"]
$('#trendChart').highcharts({
chart: {
type: 'spline'
},
title: {
text: false
},
xAxis: {
categories : Xvol1
},
yAxis: {
title: {
text: 'Volume',
},
min: 0
},
plotOptions: {
spline: {
marker: {
enabled: true
}
}
},
series: [{
name: $(".profileName0").html(),
data: vol1
},
{
name: $(".profileName1").html(),
data: vol2
},
{
name: $(".profileName3").html(),
data: vol3
},
{
name: $(".profileName2").html(),
data: vol4
},
{
name: $(".profileName4").html(),
data: vol5
},
{
name: $(".profileName5").html(),
data: vol6
},
{
name: $(".profileName6").html(),
data: vol7
},
{
name: $(".profileName7").html(),
data: vol8
},
{
name: $(".profileName8").html(),
data: vol9
},
{
name: $(".profileName9").html(),
data: vol10
},
]
});
UPDATE 1: Ich habe versucht, aber es scheint nicht, wie zu arbeiten.
var series = [];
for(i = 0; i < 10; i++){
series.push({name: $('.profileName'+i+'"').html(),, data: vol[i]});
}
$('#trendChart').highcharts({
chart: {
type: 'spline'
},
title: {
text: false
},
xAxis: {
categories : Xvol1
},
yAxis: {
title: {
text: 'Volume',
},
min: 0
},
plotOptions: {
spline: {
marker: {
enabled: true
}
}
},
series: [series]
});
});
Nachdem ich die Daten durch eine for-Schleife erfolgreich generieren, ich bin jetzt kämpfen, wie die Daten zu aktualisieren, habe ich versucht, es zu aktualisieren, mit setData()
aber scheinen es so Anpassung braucht, um zu funktionieren.
var seriesData = [vol1, vol2, vol3, vol4, vol5, vol6 , vol7, vol8, vol9, vol10]; // add all the vols. I have used 2 for example
var series = [];
for(i = 0; i < 5; i++){
series.push({name: names[i], data: seriesData[i]});
}
var trendChart12w = $('#trendChart').highcharts();
trendChart12w.series[0].setData(series);
Lösung:
var dataCounting = $(".DataCount").last().html();
var seriesData = [vol1, vol2, vol3, vol4, vol5, vol6 , vol7, vol8, vol9, vol10]; // add all the vols. I have used 2 for example
var trendChart1y = $('#trendChart').highcharts();
trendChart1y.xAxis[0].setCategories(Xvol1);
for(i = 0; i < dataCounting; i++){
trendChart1y.series[i].setData(seriesData[i]);
}
Wo ist die 'volX' Daten kommen? Kannst du es zu einem Array machen? – apokryfos
volX ist nur ein weiteres Array() für die Anzeige Kategorie auf xAxis – anson920520
Ich habe es nicht richtig ausgedrückt 'volX' ist eine generische Art zu sagen 'vol1, vol2, vol3 ....' – apokryfos