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.