Как построить несколько функций на одной фигуре в Matplotlib?

110

Как я могу построить следующие 3 функции (то есть sin, cosи добавление), на области t, в том же рисунке?

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
источник

Ответы:

181

Чтобы построить несколько графиков на одном и том же рисунке, вам необходимо:

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

введите описание изображения здесь

Шривацан
источник
Хорошо, а как очистить графики, если вы хотите нанести следующий на новый график?
NoName
@NoName: Что вы имеете в виду, говоря «очистить участки»? Вы хотите закрыть окно построения и построить новое?
Srivatsan
Неважно, значение по умолчанию автоматически очищается после вызова, plt.show()поэтому повторное построение графика не будет отображаться на том же графике.
NoName
51

Возможно, это более питонический способ.

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

введите описание изображения здесь

Джаш Шах
источник
1
Можете ли вы также изменить цвета каждого графика, используя этот метод? Если да, то как?
nbro
4
Вы можете указать цвет, изменяя plt.plot()часть как: plt.plot(t, a, 'b', t, b, 'g', t, c, 'y'). Вы можете указать цвета на основе цветов, указанных в этой ссылке: matplotlib.org/users/colors.html
Шах
не можем ли мы использовать ion()pyplot для этого тоже правильно, вместо того, чтобы строить все в одной строке?
toing_toing 03
@toing_toing Извините, я не слишком осведомлен ion(). Вы можете проиллюстрировать это примером?
Jash Shah
1
как этот "более питонический" ответ, чем принятый? «Явное лучше, чем неявное». и удобочитаемость поддерживает принятый ответ imho (хотя я признаю, что это субъективно). Быстрое понимание вашего плотного вызова plt.plot () обеспечивается использованием аналогичной переменной «t» для трех кривых, что не является систематическим. При этом я думаю, что интересно знать, что эта версия существует.
Blupon
6

Просто используйте функцию plotследующим образом

figure()
...
plot(t, a)
plot(t, b)
plot(t, c)
Leeladam
источник