Расширенные функции quiver и quiverkey

MatplotlibMatplotlibBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Matplotlib - это библиотека визуализации данных на Python, которая позволяет пользователям создавать широкий спектр 2D и 3D графиков. Одной из многих полезных функций Matplotlib является возможность создавать графики векторных полей (quiver plots).

В этом практическом занятии мы рассмотрим некоторые продвинутые параметры функций quiver() и quiverkey() в Matplotlib. Эти функции позволяют настраивать стрелки в графике векторных полей, включая масштаб стрелки, точку опоры и частоту стрелок.

Советы по работе с ВМ

После запуска виртуальной машины (VM) кликните в левом верхнем углу, чтобы переключиться на вкладку Notebook и приступить к практике с использованием Jupyter Notebook.

Иногда может потребоваться подождать несколько секунд, пока Jupyter Notebook полностью загрузится. Проверка операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы столкнетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.

Стрелки масштабируются по ширине графика, а не по области просмотра

Функция quiver() может использоваться для создания графика векторных полей (quiver plot). По умолчанию стрелки на графике масштабируются в соответствии с данными, а не с самим графиком. Это может затруднять визуализацию стрелок, которые находятся близко к краям графика.

import matplotlib.pyplot as plt
import numpy as np

X, Y = np.meshgrid(np.arange(0, 2 * np.pi,.2), np.arange(0, 2 * np.pi,.2))
U = np.cos(X)
V = np.sin(Y)

fig1, ax1 = plt.subplots()
ax1.set_title('Arrows scale with plot width, not view')
Q = ax1.quiver(X, Y, U, V, units='width')
qk = ax1.quiverkey(Q, 0.9, 0.9, 2, r'$2 \frac{m}{s}$', labelpos='E',
                   coordinates='figure')
plt.show()

Точка опоры и частота стрелок

Функция quiver() также позволяет настроить точку опоры стрелок и частоту их отображения. Параметр pivot можно установить в значение 'mid' или 'tip', а массивы, передаваемые в quiver(), можно срезыровать, чтобы отображать только каждую n-ю стрелку.

fig2, ax2 = plt.subplots()
ax2.set_title("pivot='mid'; every third arrow; units='inches'")
Q = ax2.quiver(X[::3, ::3], Y[::3, ::3], U[::3, ::3], V[::3, ::3],
               pivot='mid', units='inches')
qk = ax2.quiverkey(Q, 0.9, 0.9, 1, r'$1 \frac{m}{s}$', labelpos='E',
                   coordinates='figure')
ax2.scatter(X[::3, ::3], Y[::3, ::3], color='r', s=5)
plt.show()

Масштабирование стрелок по оси X

Функция quiver() также позволяет масштабировать стрелки в зависимости от вида по оси X. Это может быть полезно для отображения стрелок в разных масштабах в зависимости от данных.

fig3, ax3 = plt.subplots()
ax3.set_title("pivot='tip'; scales with x view")
M = np.hypot(U, V)
Q = ax3.quiver(X, Y, U, V, M, units='x', pivot='tip', width=0.022,
               scale=1 / 0.15)
qk = ax3.quiverkey(Q, 0.9, 0.9, 1, r'$1 \frac{m}{s}$', labelpos='E',
                   coordinates='figure')
ax3.scatter(X, Y, color='0.5', s=1)
plt.show()

Резюме

В этом практическом занятии были рассмотрены некоторые продвинутые параметры функций quiver() и quiverkey() в Matplotlib. Эти параметры позволяют настраивать стрелки в графике векторных полей (quiver plot), включая масштаб стрелки, точку опоры и частоту стрелок. Используя эти параметры, пользователи могут создавать более информативные и наглядные графики векторных полей.