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

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


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


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)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.