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