Existe-t-il une commande équivalente explicite dans matplotlib de Python pour hold on
de Matlab? J'essaie de tracer tous mes graphiques sur les mêmes axes. Certains graphiques sont générés dans une boucle for
et sont tracés séparément de su
et sl
:
import numpy as np
import matplotlib.pyplot as plt
for i in np.arange(1,5):
z = 68 + 4 * np.random.randn(50)
zm = np.cumsum(z) / range(1,len(z)+1)
plt.plot(zm)
plt.axis([0,50,60,80])
plt.show()
n = np.arange(1,51)
su = 68 + 4 / np.sqrt(n)
sl = 68 - 4 / np.sqrt(n)
plt.plot(n,su,n,sl)
plt.axis([0,50,60,80])
plt.show()
Il suffit d'appeler plt.show()
à la fin:
import numpy as np
import matplotlib.pyplot as plt
plt.axis([0,50,60,80])
for i in np.arange(1,5):
z = 68 + 4 * np.random.randn(50)
zm = np.cumsum(z) / range(1,len(z)+1)
plt.plot(zm)
n = np.arange(1,51)
su = 68 + 4 / np.sqrt(n)
sl = 68 - 4 / np.sqrt(n)
plt.plot(n,su,n,sl)
plt.show()
Vous pouvez utiliser les éléments suivants:
plt.hold(True)
La fonction hold on
est activée par défaut dans matplotlib.pyplot
. Ainsi, chaque fois que vous évoquez plt.plot()
avant plt.show()
, un dessin est ajouté au graphique. Lancer plt.plot()
après la fonction plt.show()
permet de redessiner l’image en entier.
vérifier la documentation pyplot
. Pour être complet,
import numpy as np
import matplotlib.pyplot as plt
#evenly sampled time at 200ms intervals
t = np.arange(0., 5., 0.2)
# red dashes, blue squares and green triangles
plt.plot(t, t, 'r--', t, t**2, 'bs', t, t**3, 'g^')
plt.show()