Как построить несколько функций на одной фигуре в 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

Ответы:


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)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.