Comment tracer plusieurs fonctions sur la même figure, dans Matplotlib?

109

Comment puis-je tracer les 3 fonctions suivantes (c'est-à sin- dire , coset l'addition), sur le domaine t, dans la même figure?

from numpy import *
import math
import matplotlib.pyplot as plt

t = linspace(0, 2*math.pi, 400)

a = sin(t)
b = cos(t)
c = a + b
user3277335
la source

Réponses:

180

Pour tracer plusieurs graphiques sur la même figure, vous devrez faire:

from numpy import *
import math
import matplotlib.pyplot as plt

t = linspace(0, 2*math.pi, 400)
a = sin(t)
b = cos(t)
c = a + b

plt.plot(t, a, 'r') # plotting t, a separately 
plt.plot(t, b, 'b') # plotting t, b separately 
plt.plot(t, c, 'g') # plotting t, c separately 
plt.show()

entrez la description de l'image ici

Srivatsan
la source
D'accord, maintenant comment effacer les graphiques si vous souhaitez tracer le suivant sur un nouveau graphique?
NoName
@NoName: Que voulez-vous dire par "effacer les graphiques"? Voulez-vous fermer la fenêtre de traçage et en tracer une nouvelle?
Srivatsan
Peu importe, la figure par défaut est automatiquement effacée après l'appel, plt.show()donc le tracé à nouveau ne sera pas tracé sur le même graphique.
NoName
51

Peut-être une manière plus pythonique de le faire.

from numpy import *
import math
import matplotlib.pyplot as plt

t = linspace(0,2*math.pi,400)
a = sin(t)
b = cos(t)
c = a + b

plt.plot(t, a, t, b, t, c)
plt.show()

entrez la description de l'image ici

Jash Shah
la source
1
Pouvez-vous également changer les couleurs de chaque tracé en utilisant cette méthode? Si c'est le cas, comment?
nbro
4
Vous pouvez spécifier les couleurs en modifiant la plt.plot()pièce comme suit plt.plot(t, a, 'b', t, b, 'g', t, c, 'y'):. Vous pouvez spécifier les couleurs en fonction des couleurs données dans ce lien: matplotlib.org/users/colors.html
Shah
ne pouvons-nous pas utiliser ion()pyplot pour cela, plutôt que de tout tracer sur une seule ligne?
toing_toing
@toing_toing Désolé, je ne suis pas trop au courant ion(). Pouvez-vous illustrer avec un exemple?
Jash Shah
1
comment est-ce "plus pythonique" que la réponse acceptée? "Explicite vaut mieux qu'implicite." et la lisibilité soutient la réponse acceptée à mon humble avis (j'admets que c'est subjectif cependant). La compréhension rapide de votre appel dense plt.plot () est rendue possible par l'utilisation d'une variable «t» similaire pour les trois courbes, ce qui n'est pas systématique. Cela étant dit, je pense qu'il est intéressant de savoir que cette version existe.
Blupon
6

Utilisez simplement la fonction plotcomme suit

figure()
...
plot(t, a)
plot(t, b)
plot(t, c)
leeladam
la source