web-dev-qa-db-fra.com

Python équivalent à 'hold on' dans Matlab

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()
38
Medulla Oblongata

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()
33
Alvaro Fuentes

Vous pouvez utiliser les éléments suivants:

plt.hold(True)
20
mapsa

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.

5
freude

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()
0
chandresh