Jak narysować wiele funkcji na tej samej figurze w Matplotlib?

110

Jak mogę wykreślić następujące 3 funkcje (tj sin, cosi dodatkowo) w domenie t, w tej samej figury?

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
źródło

Odpowiedzi:

181

Aby wykreślić wiele wykresów na tej samej figurze, musisz zrobić:

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

wprowadź opis obrazu tutaj

Srivatsan
źródło
OK, teraz jak wyczyścić wykresy, jeśli chcesz wykreślić następny na nowym wykresie?
NoName
@NoName: Co masz na myśli mówiąc „wyczyść działki”? Czy chcesz zamknąć okno kreślenia i wykreślić nowe?
Srivatsan
Nieważne, wartość domyślna jest automatycznie usuwana po wywołaniu, plt.show()więc ponowne drukowanie nie będzie drukowane na tym samym wykresie.
NoName
51

Być może jest to bardziej pytoniczny sposób.

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

wprowadź opis obrazu tutaj

Jash Shah
źródło
1
Czy możesz także zmienić kolory każdej działki za pomocą tej metody? Jeśli tak to jak?
nbro
4
Można określić kolory zmieniając plt.plot()część jak: plt.plot(t, a, 'b', t, b, 'g', t, c, 'y'). Możesz określić kolory na podstawie kolorów podanych w tym linku: matplotlib.org/users/colors.html
Jash Shah
czy nie możemy użyć ion()do tego również w pyplocie, zamiast wykreślać wszystko w jednej linii?
toing_toing
@toing_toing Przepraszamy, nie jestem tego świadomy ion(). Czy możesz to zilustrować przykładem?
Jash Shah
1
dlaczego to „bardziej pytoniczne” niż zaakceptowana odpowiedź? „Wyraźne jest lepsze niż ukryte”. a czytelność wspiera akceptowaną odpowiedź imho (przyznaję, że jest to subiektywne). Szybkie zrozumienie gęstego wywołania plt.plot () jest możliwe dzięki zastosowaniu podobnej zmiennej „t” dla trzech krzywych, co nie jest systematyczne. Biorąc to pod uwagę, myślę, że ciekawie jest wiedzieć, że ta wersja istnieje.
Blupon
6

Po prostu użyj funkcji plotw następujący sposób

figure()
...
plot(t, a)
plot(t, b)
plot(t, c)
leeladam
źródło