Wie zeichnet man in Matplotlib mehrere Funktionen in derselben Figur?

108

Wie kann ich die folgenden drei Funktionen plotten (dh sin, cosund der Zusatz), auf der Domäne t, in der gleichen Figur?

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
quelle

Antworten:

179

Um mehrere Diagramme in derselben Figur zu zeichnen, müssen Sie Folgendes tun:

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

Geben Sie hier die Bildbeschreibung ein

Srivatsan
quelle
Okay, wie löschen Sie jetzt die Diagramme, wenn Sie das nächste Diagramm in einem neuen Diagramm zeichnen möchten?
NoName
@NoName: Was meinst du mit "Plots löschen"? Möchten Sie das Plotfenster schließen und ein neues plotten?
Srivatsan
Trotzdem wird die Standardzahl nach dem Aufruf automatisch gelöscht, plt.show()sodass ein erneutes Plotten nicht im selben Diagramm dargestellt wird.
NoName
51

Vielleicht eine pythonischere Art, dies zu tun.

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

Geben Sie hier die Bildbeschreibung ein

Jash Shah
quelle
1
Können Sie mit dieser Methode auch die Farben der einzelnen Diagramme ändern? Wenn das so ist, wie?
nbro
4
Sie können die Farben angeben, indem Sie das plt.plot()Teil wie folgt ändern : plt.plot(t, a, 'b', t, b, 'g', t, c, 'y'). Sie können die Farben basierend auf den in diesem Link angegebenen Farben angeben: matplotlib.org/users/colors.html
Jash Shah
können wir das nicht auch ion()in pyplot verwenden, anstatt alles in einer einzigen Zeile zu zeichnen?
toing_toing
@toing_toing Sorry, ich bin mir nicht allzu bewusst ion(). Können Sie anhand eines Beispiels veranschaulichen?
Jash Shah
1
Wie ist das "pythonischer" als die akzeptierte Antwort? "Explizit ist besser als implizit." und Lesbarkeit unterstützt die akzeptierte Antwort imho (ich gebe jedoch zu, dass dies subjektiv ist). Das schnelle Verständnis Ihres dichten Aufrufs von plt.plot () wird durch die Verwendung einer ähnlichen "t" -Variablen für die drei Kurven ermöglicht, was nicht systematisch ist. Trotzdem finde ich es interessant zu wissen, dass diese Version existiert.
Blupon
6

Verwenden Sie einfach die Funktion plotwie folgt

figure()
...
plot(t, a)
plot(t, b)
plot(t, c)
Leeladam
quelle