Hinzufügen von Daten in ein highchart-Diagramm mit einem array mit den IDs
Möchte ich hinzufügen, dass eine Serie zu einem highchart Streudiagramm, wo ich bin indem jeder Punkt in der Serie. Ich ein Diagramm erstellen, in der folgenden Weise:
var chart; //globally available
makeCharts = function(){
chart = new Highcharts.Chart({
chart: {
renderTo: 'container1',
type: 'scatter'
},
series: [{
name: 'a',
data: [{
'id': 'point1',
'x': 1,
'y': 2
}, {
'id': 'point2',
'x': 2,
'y': 5
}]
}]
});
}
Ich würde gerne in der Lage, zur Aktualisierung der Punkte auf der Karte mit so etwas wie:
chart.series[0].setData([{id:['point3', 'point4', 'point5'], y:[0,1,2], x:[1,2,3]}])
dies ist aber nicht korrekt. Ist es möglich, Sie zu aktualisieren ein Diagramm mithilfe dieser Ansatz, wo jeder Punkt hat eine ID?
EDIT:
Nur um zu klären, möchte ich weitergeben kann, die arrays direkt auf, anstatt das hinzufügen der Daten-Punkt für Punkt mit addPoint()
. Ich könnte in einer Schleife durch ein array und verwenden Sie addPoint()
etwas wie das zu tun:
id:['point3', 'point4', 'point5'];
y:[0,1,2];
x:[1,2,3];
for (i=0; i<x.length; i++)
{
chart.series[0].addPoint({
x: x[[i],
y: y[i],
id: id[i]
});
}
Dies ist jedoch sehr langsam. Es ist viel schneller, um das hinzufügen von Daten mit dem folgenden Ansatz:
chart.series[0].setData([[1,0],[2,1],[3,2]]);
Habe ich festgestellt, dass ich Daten hinzufügen, wie dies:
chart.series[0].setData([[1,0, 'point3'],[2,1, 'point4'],[3,2, 'point5']]);
dann aber der einzige Weg, ich kann Zugriff auf die id
wenn der Punkt ausgewählt ist, wird durch this.point.config[2]
. Mit dem folgenden Ansatz, den ich bin nicht in der Lage zu verwenden chart.get('pointID')
zum identifizieren eines Punktes, da ich nicht die ID
. Ich möchte in der Lage sein, zu erkennen den Punkt, indem nur der ID
.
Gibt es eine Funktion addSeries für diesen Zweck
InformationsquelleAutor djq | 2012-10-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sowie allgemein gesprochen gibt es zwei Wege, auf denen Sie können ändern Sie das Diagramm-Daten dynamisch
In Ihrem Fall, da Sie hinzufügen möchten, ein paar Punkte dynamisch, aber Beibehaltung der vorhandenen Punkte, sollten Sie mit Methode 2. Aber Sie müssen verwenden Sie es in einer Schleife mit dem Neuzeichnen wird auf false gesetzt (damit die Lösung des Problems, langsam) und dann nach der Schleife rufen Sie die redraw-Methode explizit
Code
Hinzufügen mehrerer Punkte dynamisch | Highcharts und Highstock @ jsFiddle
InformationsquelleAutor Jugal Thakkar
Versuchen Sie es mit Serie.addPoint.
Aber wenn Sie benötigen, um Daten für die Serie, verwenden
addpoint()
Durchlaufen ein array, das würde auch funktionieren.Kann ich einen Blick auf das array, die Sie hinzufügen möchten?
Ich habe es in meiner Frage oben:
x=[1,2,3]; y=[0,1,2];id=['point3', 'point4', 'point5'];
InformationsquelleAutor Igor Shastin
Sobald Sie können, geben Sie Ihre Daten wie diese:
(wie du sagtest in Frage), kann ich schlage vor, Sie verwenden einen hack.
Müssen wir hinzufügen, eine weitere Aussage zu Methode
applyOptions
von Highcharts.Punkt Prototyp.Hier Sie können ihn in Aktion zu sehen.
InformationsquelleAutor Igor Shastin