Як створити діаграму сагайдака в matplotlib (з прикладами)


Графік сагайдака — це тип графіка, який відображає стрілки з напрямними компонентами U і V у декартових координатах, визначених X і Y.

Ми можемо легко створити діаграму сагайдака в Matplotlib за допомогою функції quiver() , яка використовує такий синтаксис:

сагайдак (x, y, u, v)

золото:

  • x: координати x розташування стрілок
  • y: координати y розташування стрілок
  • u: компоненти x векторів-стрілок
  • v: Компоненти y векторів-стрілок

Цей підручник містить кілька прикладів практичного використання цієї функції.

Приклад 1: малюнок сагайдака з однією стрілою

Наступний код показує, як відобразити діаграму сагайдака за допомогою однієї стрілки:

 import matplotlib. pyplot as plt

#define plots
fig, ax = plt. subplots ()

#define coordinates and directions
x = 0
y = 0
u = 15
v = 3

#create quiver plot
ax. quiver (x, y, u, v)

#display quiver plot
plt. show ()

Графік сагайдака в matplotlib

Приклад 2: макет сагайдака з двома стрілами

Наступний код показує, як відобразити діаграму сагайдака з двома стрілками:

 import matplotlib. pyplot as plt

#define plots
fig, ax = plt. subplots ()

#define coordinates and directions
x = [0, 0]
y = [0, 0]
u = [0, 1]
v = [-2, 0]
#create quiver plot
ax. quiver (x, y, u, v, scale = 10 )

#display quiver plot
plt. show () 

Сагайдак пітона з двома стрілами

Зауважте, що аргумент масштабу масштабує стрілки до більшої довжини, завдяки чому їх легше побачити на графіку.

Приклад 3: графік сагайдака з сітчастою сіткою

Наступний код показує, як відобразити діаграму сагайдака за допомогою сітки:

 import matplotlib. pyplot as plt
import numpy as np

#define plots
fig, ax = plt. subplots ()

#define coordinates and directions
x,y = np. meshgrid (np. arange (-2, 2, .1), np. arange (-2, 2, .1))
z = x*np. exp (-x**2 - y**2)
v, u = np. gradient (z, .1, .1)

#create quiver plot
ax. quiver (x, y, u, v)

#display quiver plot
plt. show () 

Сагайдак Matplotlib

Ви можете знайти повну документацію функції quiver() тут .

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *