Bonjour à tous !
J’essaye de faire un relevé de paramètres météo en mettant à jour les dernières valeurs mesurées tout à droite sur l’axe du temps (axe X).
Lorsque j’utilise plt.show et plt.savefig j’obtiens la courbe voulue.
Lorsque je supprime le plt.show la courbe sauvegardée est « hachée ».
J’ai essayé diverses solutions (dont des timers en pensant que la sauvegarde n’a pas le temps de se faire, également avec scatter…) mais sans succès.
Quelqu’un aurait-il une idée ?
Merci d’avance pour votre aide.
Voici le code :
# -- coding: utf-8 --
import numpy as np
import matplotlib.pyplot as plt
import time
# creation du graph (les dimensions sont en pouces)
fig=plt.figure(figsize=(6,4),dpi=100)
liste_Y=[]
liste_X=[]
# initialisation des listes
for i in range(0,240):
liste_Y.append(0)
liste_X.append((-240+i))
while (True):
# décalage de la liste Y vers la gauche
for j in range(0,239):
liste_Y[j]=liste_Y[1+j]
#acquisition de la valeur mesurée (imposée à 9 pour le test)
liste_Y[239]=9
#impression du graph et sauvegarde
plt.plot(liste_X,liste_Y,"r-",linewidth=0.8)
plt.savefig('/home/pi/Documents/test.jpg',dpi=80)
# plt.show()
time.sleep(1)
Le résultat avec show activé (la première figure est la sauvegarde en jpg) :
Le résultat que montre show (les deux sont bien identiques)
… et le résultat sans show, le « hachage » est manifeste et je n’ai rien changé d’autre que de commenter plt.show() !!! :