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