Verwenden Sie die Diagrammerstellungsbibliothek Plotly, um Diagramme zu erstellen, die in Echtzeit schwanken. Der Code wurde auf GitHub hochgeladen. https://github.com/bridget462/plotly_live_graph/blob/master/plotly_live_graph.ipynb
Plotly ist eine Bibliothek, mit der Sie auf einfache Weise gut aussehende Diagramme erstellen können.
Sie können ein solches Diagramm mit den Standardeinstellungen erstellen
Mit Plotly können Sie interaktive Diagramme erstellen. Wenn Sie beispielsweise mit der Maus darüber fahren, wird der Wert der Daten in der Nähe angezeigt und Sie können hinein- / herauszoomen.
Eigentlich wollte ich ein Diagramm in Qiitas Artikel einfügen, aber ich konnte kein Diagramm einer interaktiven HTML-Datei einfügen, daher werde ich ein Video veröffentlichen.
Es gibt viele Artikel zum Erstellen verschiedener Diagrammtypen in Plotly, aber es gibt nur wenige Erklärungen zum Aktualisieren von Diagrammen in Echtzeit. Daher werde ich sie hier zusammenfassen. In diesem Artikel verwenden wir Zufallszahlen, um ein Diagramm zu erstellen, das sich ändernde Daten in Echtzeit widerspiegelt. Wenn Sie diesen zufälligen Teil durch Messdaten ersetzen, können Sie die Daten in Echtzeit visualisieren.
Zu erstellendes Echtzeitdiagramm. Der interaktive Betrieb war auch mit Echtzeitgraphen möglich.
Schreiben Sie den Code auf das "Jupiter-Notizbuch".
Importieren Sie zunächst die Bibliothek.
# importing libraries
import plotly.graph_objects as go # to make a graph
import numpy as np # to generate test data
Das Verfahren zum Erstellen eines Echtzeitdiagramms mit Plotly ist ungefähr:
ist.
# creating a figure widget. this will be updated in later cells
fig = go.FigureWidget()
fig
Wenn ich diesen Code auf dem "Jupyter-Notizbuch" ausführe, wird in der Zellenausgabe ein leeres Diagramm angezeigt.
Wir werden die hier in anderen Zellen erstellte "Feige" aktualisieren. Aktualisierungen werden in Echtzeit angezeigt.
# let's add plot. add ; at the end of the code to ommit the output in this cell,
# because the figure widget above will be updated instead
N = 100 # data size
x = np.linspace(0, 20, N)
y = np.random.rand(N)
fig.add_scatter(x=x, y=y);
Fügen wir als Beispiel Daten hinzu, die auf der x-Achse eine Zufallszahl von 0 bis 1 annehmen und auf der y-Achse festgelegt sind.
Dies liegt daran, dass das letzte Semikolon ;
von fig.add_scatter (x = x, y = y);
den Graphen nicht dupliziert.
Wenn kein ;
vorhanden ist, wird das Diagramm mit den hinzugefügten Daten auch unter der ausgeführten Zelle angezeigt. Dies ist jedoch nicht erforderlich, da das Diagramm, mit dem das Figuren-Widget erstellt wurde, aktualisiert wird.
# to update the plot, take the correct reference by fig.data[i] where i is the order which you added the plot
# in this example, let's modefiy the first scatter plot (fig.data[0])
# getting reference from the graph
first_scatter_plot = fig.data[0]
# assine new random values. as soon as this code is excuted, the graph above will be updated.
first_scatter_plot.y = np.random.rand(N)
Es ist ein Bild zum Aktualisieren der in 2 hinzugefügten Daten. Um auf die Daten zu verweisen, die zuerst mit "fig.add_scatter ()" hinzugefügt wurden, schreiben Sie "fig.data [0]".
Wenn Sie andere Daten hinzugefügt haben, müssen Sie sich die Reihenfolge merken, in der Sie sie hinzugefügt haben (siehe fig.data [1]
für die zweiten hinzugefügten Daten).
Lassen Sie uns das Diagramm minutenlang aktualisieren, um es mehrmals zu aktualisieren. Die Titel der folgenden Zellen werden ebenfalls geändert, um anzugeben, wie oft sie aktualisiert wurden.
# let's update both title and the y data at the same time
FRAME = 1000 # how many times which update the graph
first_scatter_plot = fig.data[0] # getting reference from the graph
for i in range(FRAME):
first_scatter_plot.y = np.random.rand(N) # updating y data
fig.update_layout(title=f'FRAME: {i + 1}');
Bei der Ausführung können Sie ein Diagramm erstellen, das sich wie das Video am Anfang des Artikels ändert.
Weitere Codes wie das Einstellen des Anzeigebereichs der y-Achse und das Speichern des Diagramms finden Sie in den Hinweisen auf GitHub. Wenn Sie interessiert sind, lesen Sie diese bitte. https://github.com/bridget462/plotly_live_graph/blob/master/plotly_live_graph.ipynb
Recommended Posts