Come tracciare più funzioni sulla stessa figura, in Matplotlib?


109

Come posso tracciare i seguenti 3 funzioni (ad esempio sin, cose l'aggiunta), sul dominio t, nella stessa figura?

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

Risposte:


180

Per tracciare più grafici sulla stessa figura dovrai fare:

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

inserisci qui la descrizione dell'immagine


Va bene, ora come si cancellano i grafici se si desidera tracciare quello successivo su un nuovo grafico?
NoName

@NoName: cosa intendi con "cancella le trame"? Vuoi chiudere la finestra di stampa e stamparne una nuova?
Srivatsan

Non importa, la cifra predefinita viene automaticamente cancellata dopo la chiamata, plt.show()quindi la stampa di nuovo non verrà tracciata sullo stesso grafico.
NoName

51

Forse un modo più pitonico per farlo.

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

inserisci qui la descrizione dell'immagine


1
Puoi anche cambiare i colori di ogni trama usando questo metodo? Se é cosi, come?
nbro

4
È possibile specificare i colori cambiando la plt.plot()parte come: plt.plot(t, a, 'b', t, b, 'g', t, c, 'y'). Puoi specificare i colori in base ai colori forniti in questo link: matplotlib.org/users/colors.html
Jash Shah

non possiamo usarlo ion()in pyplot anche per questo, piuttosto che tracciare tutto in una singola riga?
toing_toing

@toing_toing Mi dispiace non sono troppo consapevole ion(). Puoi illustrare con un esempio?
Jash Shah

1
come è questo "più pitonico" della risposta accettata? "Esplicito è meglio che implicito." e la leggibilità supporta la risposta accettata imho (ammetto che questo è soggettivo però). La rapida comprensione della tua chiamata densa plt.plot () è abilitata dall'uso di una variabile "t" simile per le tre curve, che non è sistematica. Detto questo, penso che sia interessante sapere che questa versione esiste.
Blupon

6

Usa la funzione plotcome segue

figure()
...
plot(t, a)
plot(t, b)
plot(t, c)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.