Como plotar várias funções na mesma figura, no Matplotlib?

109

Como posso plotar as 3 funções a seguir (ou seja sin, cose a adição), no domínio t, na mesma 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
user3277335
fonte

Respostas:

180

Para plotar vários gráficos na mesma figura, você terá que fazer:

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

insira a descrição da imagem aqui

Srivatsan
fonte
Ok, agora como você limpa os gráficos se deseja plotar o próximo em um novo gráfico?
NoName
@NoName: O que você quer dizer com "limpar os pontos"? Você deseja fechar a janela de plotagem e plotar uma nova?
Srivatsan
Esqueça, a figura padrão é apagada automaticamente após a chamada, de plt.show()modo que traçar novamente não será traçado no mesmo gráfico.
NoName
51

Talvez uma maneira mais python de fazer isso.

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

insira a descrição da imagem aqui

Jash Shah
fonte
1
Você também pode alterar as cores de cada plotagem usando este método? Se sim, como?
novembro,
4
Você pode especificar as cores, alterando a plt.plot()parte, como: plt.plot(t, a, 'b', t, b, 'g', t, c, 'y'). Você pode especificar as cores com base nas cores fornecidas neste link: matplotlib.org/users/colors.html
Jash Shah
não podemos usar ion()em pyplot para isso também, ao invés de plotar tudo em uma única linha?
toing_toing
@toing_toing Desculpe, não estou muito ciente ion(). Você pode ilustrar com um exemplo?
Jash Shah de
1
como isso é "mais pitônico" do que a resposta aceita? "Explícito é melhor do que implícito." e a legibilidade apóia a resposta aceita imho (admito que isso seja subjetivo). O rápido entendimento de sua chamada plt.plot () densa é habilitado pelo uso de uma variável "t" semelhante para as três curvas, que não é sistemática. Dito isso, acho interessante saber que essa versão existe.
Blupon
6

Basta usar a função da plotseguinte maneira

figure()
...
plot(t, a)
plot(t, b)
plot(t, c)
leeladam
fonte