Як побудувати кілька функцій на одній фігурі в Matplotlib?


109

Як я можу побудувати наступні 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

Відповіді:


180

Щоб побудувати кілька графіків на одній фігурі, вам доведеться зробити:

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: Що ви маєте на увазі під «очищення сюжетів»? Ви хочете закрити графічне вікно та створити нове?
Срівацан

Незважаючи на те, цифра за замовчуванням автоматично видаляється після виклику, 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
Jash Shah

чи не можемо ми використати ion()pyplot для цього занадто правильно, а не побудувати все в одному рядку?
toing_toing

@toing_toing Вибачте, я не надто обізнаний ion(). Чи можете ви проілюструвати на прикладі?
Джаш Шах

1
як це "більше пітонічне", ніж прийнята відповідь? "Явне краще, ніж неявне." і читабельність підтримує прийняту відповідь imho (я визнаю, що це суб'єктивно). Швидке розуміння вашого щільного дзвінка plt.plot () вмикається завдяки використанню аналогічної змінної "t" для трьох кривих, яка не є систематичною. Попри це, я думаю, що цікаво знати, що існує ця версія.
Блупон

6

Просто використовуйте функцію plotнаступним чином

figure()
...
plot(t, a)
plot(t, b)
plot(t, c)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.