Echtzeitdiagramm mit Plotly (Python)

Was in diesem Artikel einzuführen

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

Was ist Plotly?

plotly logo Plotly ist eine Bibliothek, mit der Sie auf einfache Weise gut aussehende Diagramme erstellen können.

file.png

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. plotly_intraction.gif

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.

Echtzeitdiagramm mit Plotly

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.

plotly_live_intraction.gif

Zu erstellendes Echtzeitdiagramm. Der interaktive Betrieb war auch mit Echtzeitgraphen möglich.

Implementierung

Umgebung

Schreiben Sie den Code auf das "Jupiter-Notizbuch".

Code

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:

  1. Erstellen Sie ein Figuren-Widget
  2. Fügen Sie Daten zum Figuren-Widget hinzu
  3. Informationen zum Aktualisieren der Daten finden Sie im Abbildung-Widget

ist.

1. Erstellen Sie ein Figuren-Widget
# 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. plotly_empty_figure_widget.png

Wir werden die hier in anderen Zellen erstellte "Feige" aktualisieren. Aktualisierungen werden in Echtzeit angezeigt.

2. Fügen Sie Daten zum Figuren-Widget hinzu
# 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.

plotly_updated_graph.png > Das soeben erstellte Diagramm wird aktualisiert.
3. Informationen zum Aktualisieren der Daten finden Sie im Abbildung-Widget
# 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).

Andere

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.

plotly_live_intraction.gif

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

Echtzeitdiagramm mit Plotly (Python)
Python unter Windows
Twitter mit Python3
Python auf Mac
[Python] Schreiben Sie mehrzeilige Diagramme in Plotly Express
Python auf Windbg
Python Conda mit Cygwin
Installieren Sie Python auf der WSL
PyOpenGL-Setup unter Python 3
Installieren Sie Scrapy auf Python3
Installieren Sie Python auf dem Mac
Installieren von Python 3 in einer Mac-Umgebung
Installieren Sie Python3.4 unter CentOS 6.6
Beschriftetes Diagramm in NetworkX
Pandas auf python2.6 installieren
Python Basic ② in Windows
Installieren Sie Python unter Windows
Installieren Sie Python 2.7.3 unter CentOS 5.4
Build Python auf Ubuntu
Installieren Sie Python 3.3 unter Ubuntu 12.04
Installieren Sie Python 3.4 auf einem Mac
Installieren Sie Python 3.6 auf Docker
Aktivieren Sie Python virtualenv unter Windows
Richten Sie Python 3.4 unter Ubuntu ein
Installieren Sie Python 3.8 auf RHEL 8 (AppStream)
Verwenden Sie matplotlib unter Ubuntu 12 und Python
Installieren Sie Watchdog unter Windows + Python 3.3
Python auf Ruby und wütend Ruby auf Python
Installieren Sie pygame auf python3.4 auf dem Mac
Python + Kivy-Entwicklung unter Windows
Installieren Sie Python 3.8 unter CentOS 7 (SCL)
Sphinx-Autobuild (0.5.2) unter Windows7, Python 3.5.1, Sphinx 1.3.5
Setzen Sie Python 3.x in Ubuntu ein
Schnellste Python-Installation unter Windows
[Python] Hinweise zur Datenanalyse
Erstellen Sie eine Python-Umgebung unter Windows
Führen Sie Tensorflow 2.x unter Python 3.7 aus
Umgang mit Python auf Mac
Aktualisieren Sie die Python, die Sie auf Ihrem Mac hatten, auf 3.7-> 3.8
Installieren Sie pandas 0.14 auf python3.4 [auf Mac]
Installieren Sie OpenCV unter Ubuntu + Python
Hinweise zur Installation von Python auf Ihrem Mac
Führen Sie Pythons CGI auf CORESERVER aus
Twitter-Beiträge in Python 3 usw.
Führen Sie den Unix-Befehl auf Python aus
Erstellen Sie eine Python-Umgebung mit Windows
Python - Installieren Sie MySQLDB auf EC2
Einführung von TensorFlow in Ubuntu + Python 2.7
Installieren Sie Python 3.8 unter CentOS 8 (AppStream)
Ich habe Python unter Windows ausgeführt
Online-Übertragung mit Python
[Python] [Chainer] [Windows] Chainer unter Windows installieren
Verwenden Sie Python unter Windows (PyCharm)
Hinweise zur Installation von Python unter CentOS
Echtzeitanzeige von Videos, die von einer Webkamera auf einem Jupyter-Notebook (Python3) aufgenommen wurden
Docker bauen Python basierend auf alpinen
Erstellen einer Python-Umgebung auf einem Mac
Installieren Sie Python Pillow unter Amazon Linux
Installieren Sie Python 3.8 unter Ubuntu 18.04 (Betriebssystemstandard)