Ab Bokeh 0.11.1
gibt es jetzt eine Streaming-Schnittstelle zu Spaltendatenquellen in Bokeh-Server-Apps. Sie können sehen, und leicht ein Beispiel laufen hier:
https://github.com/bokeh/bokeh/tree/master/examples/app/ohlc
Das Beispiel eine Live-Aktualisierung OHLC-Chart mit MACD-Indikator zeigt (auf Basis synthetischer Tickdaten), die nur aktualisiert die Handlung mit den jüngsten Datenpunkte auf jeder aktualisieren.
Grundsätzlich besteht die Verwendung der Streaming-Schnittstelle aus zwei Teilen. Erstellen Sie zunächst ein neues dict
mit dem gleichen „Form“ als Spaltendatenquelle:
new_data = dict(
time=[t],
open=[open],
high=[high],
low=[low],
close=[close],
average=[average],
color=[color],
)
Dann ist dieser Pass in die .stream
Methode, mit einem optionalen rollover
Argument, wie groß der Puffer im Browser zu halten spezifiziert (früher Daten beginnen zu erhalten abgesetzt):
source.stream(new_data, 300)
Dann, nur die kleine Menge von Daten in new_data
Willbe auf das Grundstück geschickt, nicht alles.
Können Sie den Unterschied etwas mehr beschreiben? Die Technik aus dem Beispiel besteht darin, die Daten in der Datenquelle zu aktualisieren, und dann wird das Diagramm automatisch aktualisiert. Viele Leute haben die Technik aus dem Beispiel verwendet, um Aktualisierungszeitreihen zu streamen. Ich bin mir nicht ganz sicher, was Sie anders machen wollen. Wenn Sie eine Zeitreihe aktualisieren möchten, können Sie am Ende der Daten neue Punkte hinzufügen. Wenn Sie ein festes Fenster wünschen, können Sie bei Bedarf auch Punkte des Anfangs löschen. Wenn Sie haufenweise Arrays verwenden, kann das Slicing dazu beitragen, dass dies einfacher oder effizienter wird. – bigreddot
Alternativ, wenn Sie nach Unterstützung für Schadensregionen und partielle Neuzeichnungen fragen, gibt es derzeit nicht. Das Aktualisieren der Daten führt immer zu einem vollständigen Rendern. – bigreddot
Ja ich spreche von partiellen Neuzeichnen wie die Blitz-Option in der animierten Funktion von Matplotlib – Maxi