Ich verwende nvd3, um ein einfaches Liniendiagramm mit Daten zu zeichnen, die über eine Ajax-Anfrage empfangen werden. Es funktioniert perfekt mit der ersten Zeichnungsanforderung, aber nicht mit dem Neuzeichnen. Das Diagramm wird neu gezeichnet, indem die gleiche Zeichnungsfunktion aufgerufen wird, jedoch mit unterschiedlichen Daten und unterschiedlichen Max / Min-Werten.
Wenn das Diagramm mit neuen Daten neu gezeichnet wird, erscheint der "Hover-Kreis" nicht, während der Tooltip dies tut. Wenn Sie auf die Legende des Diagramms klicken und ein Neuzeichnen erzwingen, wird der Hover erneut angezeigt, aber die Werte von yAxis werden in die Werte des ersten gezeichneten Diagramms geändert.
Bisher gehe ich davon aus, dass beim Neuzeichnen des Diagramms immer noch die alten Max / Min-Werte erhalten bleiben - allerdings nur in Bezug auf den "Hover" -Effekt. Das generelle Diagramm sieht bis jetzt auch beim Neuzeichnen gut aus - das Problem ist nur der Schwebeflug und das ist es.
Klingt ziemlich verwirrend, aber hoffentlich werden Sie den Punkt verstehen.
Irgendein Code:
%Vor%Ich habe gerade erst mit NVD3 und D3 angefangen, mache aber eine ähnliche Sache. Was für mich funktionierte, ist die Datenaktualisierungsfunktion mit der Diagrammerstellungsfunktion zu trennen. Beachten Sie jedoch die unten stehende Einschränkung ...
Ich habe Folgendes, um das Diagramm zu erstellen:
%Vor%Und die folgende Funktion, um es zu aktualisieren:
%Vor% Ich weiß nicht, ob dies die empfohlene Lösung ist, da ich immer noch im Stadium "hack to it works" bin. Damit funktionieren alle Funktionen des Diagramms nach dem Aufruf von redrawGraph()
(einschließlich Achsen-Redraw und Tooltips).
Vorbehalt : Dies scheint gelegentlich zu falsch berechneten Ticks bei der Neuberechnung zu führen: