Graphique en temps réel avec Plotly (Python)

Que présenter dans cet article

Utilisez la bibliothèque de création de graphiques Plotly pour créer des graphiques qui fluctuent en temps réel. Le code a été téléchargé sur GitHub. https://github.com/bridget462/plotly_live_graph/blob/master/plotly_live_graph.ipynb

Qu'est-ce que Plotly

plotly logo Plotly est une bibliothèque qui permet de créer facilement de beaux graphiques.

file.png

Vous pouvez créer un graphique comme celui-ci avec les paramètres par défaut

Plotly vous permet de créer des graphiques interactifs. Par exemple, si vous passez la souris, la valeur des données à proximité s'affiche et vous pouvez effectuer un zoom avant / arrière. plotly_intraction.gif

En fait, je voulais mettre un graphique dans l'article de Qiita, mais je ne pouvais pas mettre de graphique dans un fichier html interactif, donc je posterai une vidéo.

Graphique en temps réel avec Plotly

Il existe de nombreux articles sur la façon de créer différents types de graphiques dans Plotly, mais il y a peu d'explications sur la façon de mettre à jour les graphiques en temps réel, je vais donc les résumer ici. Dans cet article, nous utiliserons des nombres aléatoires pour créer un graphique qui reflète l'évolution des données en temps réel. Si vous remplacez cette partie aléatoire par des données de mesure, vous pouvez visualiser les données en temps réel.

plotly_live_intraction.gif

Graphique en temps réel à créer. Une opération interactive était possible même avec des graphiques en temps réel.

la mise en oeuvre

environnement

Écrivez le code sur le jupyter notebook.

code

Tout d'abord, importez la bibliothèque.

# importing libraries
import plotly.graph_objects as go # to make a graph
import numpy as np # to generate test data

La procédure de création d'un graphique en temps réel avec plotly est à peu près:

1.Faites un widget de figure 2. Ajouter des données au widget de la figure 3. Reportez-vous au widget de la figure pour mettre à jour les données

est.

1.Faites un widget de figure
# creating a figure widget. this will be updated in later cells
fig = go.FigureWidget()
fig 

Lorsque j'exécute ce code sur le jupyter notebook, je vois un graphique vide dans la sortie de la cellule. plotly_empty_figure_widget.png

Nous mettrons à jour la «fig» créée ici dans d'autres cellules. Les mises à jour sont reflétées en temps réel.

2. Ajouter des données au widget de la figure
# 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);

À titre d'exemple, ajoutons des données qui prennent un nombre aléatoire de 0 à 1 sur l'axe des x et fixé sur l'axe des y. Ceci est dû au fait que le dernier point-virgule ; de fig.add_scatter (x = x, y = y); ne duplique pas le graphique. S'il n'y a pas de ;, le graphique avec les données ajoutées sera également affiché sous la cellule exécutée, mais ce n'est pas nécessaire car le graphique qui a créé le widget de figure sera mis à jour.

plotly_updated_graph.png > Le graphique que vous venez de créer sera mis à jour.
3. Reportez-vous au widget de la figure pour mettre à jour les données
# 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) 

C'est une image pour mettre à jour les données ajoutées en 2. Pour faire référence aux données ajoutées en premier avec fig.add_scatter (), écrivez fig.data [0]. Si vous avez ajouté d'autres données, vous devez vous souvenir de l'ordre dans lequel vous les avez ajoutées (voir fig.data [1] pour les secondes données ajoutées).

Autre

Mettons à jour le graphique en utilisant pendant quelques minutes pour mettre à jour le graphique plusieurs fois. Les titres des cellules ci-dessous sont également modifiés pour indiquer combien de fois ils ont été mis à jour.

# 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}');

Une fois exécuté, vous pouvez créer un graphique qui change comme la vidéo au début de l'article.

plotly_live_intraction.gif

D'autres codes tels que la définition de la plage d'affichage de l'axe y et l'enregistrement du graphique peuvent être trouvés dans les notes sur GitHub, veuillez donc vous y référer si vous êtes intéressé. https://github.com/bridget462/plotly_live_graph/blob/master/plotly_live_graph.ipynb

Recommended Posts

Graphique en temps réel avec Plotly (Python)
Python sur Windows
twitter avec python3
python sur mac
[Python] Ecrire des graphiques multilignes dans Plotly Express
Python sur Windbg
Conda Python avec Cygwin
Installer python sur WSL
Configuration de PyOpenGL sur Python 3
Installez Scrapy sur python3
Installez Python sur Mac
Installer Python 3 dans un environnement Mac
Installez Python3.4 sur CentOS 6.6
Graphique étiqueté dans NetworkX
Installer des pandas sur python2.6
python basic ② sous windows
Installez python sur Windows
Installez Python 2.7.3 sur CentOS 5.4
construire Python sur Ubuntu
Installez Python 3.3 sur Ubuntu 12.04
Installez Python 3.4 sur Mac
Installez Python 3.6 sur Docker
Activer Python virtualenv sous Windows
Configurer Python 3.4 sur Ubuntu
Installez Python 3.8 sur RHEL 8 (AppStream)
Utilisez matplotlib sur Ubuntu 12 et Python
Installer watchdog sur Windows + Python 3.3
Python sur Ruby et Ruby en colère sur Python
Installer pygame sur python3.4 sur Mac
Développement Python + Kivy sous Windows
Installez Python 3.8 sur CentOS 7 (SCL)
Sphinx-autobuild (0.5.2) sous Windows7, Python 3.5.1, Sphinx 1.3.5
Mettez Python 3.x dans Ubuntu
Installation de Python la plus rapide sous Windows
[Python] Notes sur l'analyse des données
Créer un environnement Python sur Windows
Exécutez Tensorflow 2.x sur Python 3.7
Manipulation de python sur mac
Mettez à jour le python que vous aviez sur votre Mac à 3.7-> 3.8
Installez pandas 0.14 sur python3.4 [sur Mac]
Installez OpenCV sur Ubuntu + python
Remarques sur l'installation de Python sur votre Mac
Exécutez le CGI de Python sur CORESERVER
Messages Twitter dans Python 3 etc.
Exécutez la commande unix sur python
Construire un environnement Python avec Windows
Python --Installez MySQLDB sur EC2
Présentation de TensorFlow à Ubuntu + Python 2.7
Installez Python 3.8 sur CentOS 8 (AppStream)
J'ai exécuté python sur Windows
Diffusion sur LINE en utilisant python
[Python] [Chainer] [Windows] Installer Chainer sous Windows
Utiliser Python sur Windows (PyCharm)
Remarques sur l'installation de Python sur CentOS
Affichage en temps réel de la vidéo acquise à partir de la caméra Web sur le notebook Jupyter (Python3)
docker build python basé sur alpin
Construire un environnement Python sur Mac
Installez Python Pillow sur Amazon Linux
Installez Python 3.8 sur Ubuntu 18.04 (norme du système d'exploitation)