Трехмерный график векторов с использованием Matplotlib

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

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

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

Введение

В этом практическом занятии вы научитесь создавать трехмерный график векторов с использованием Python Matplotlib. График векторов представляет поле векторов в виде стрелок. Стрелки указывают в направлении векторов, а их длина представляет величину векторов.

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

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) matplotlib(("Matplotlib")) -.-> matplotlib/SpecializedPlotsGroup(["Specialized Plots"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") matplotlib/BasicConceptsGroup -.-> matplotlib/figures_axes("Understanding Figures and Axes") python/BasicConceptsGroup -.-> python/booleans("Booleans") python/DataStructuresGroup -.-> python/tuples("Tuples") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") matplotlib/SpecializedPlotsGroup -.-> matplotlib/quiver_plots("Quiver Plots") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-48895{{"Трехмерный график векторов с использованием Matplotlib"}} matplotlib/figures_axes -.-> lab-48895{{"Трехмерный график векторов с использованием Matplotlib"}} python/booleans -.-> lab-48895{{"Трехмерный график векторов с использованием Matplotlib"}} python/tuples -.-> lab-48895{{"Трехмерный график векторов с использованием Matplotlib"}} python/importing_modules -.-> lab-48895{{"Трехмерный график векторов с использованием Matplotlib"}} matplotlib/quiver_plots -.-> lab-48895{{"Трехмерный график векторов с использованием Matplotlib"}} python/numerical_computing -.-> lab-48895{{"Трехмерный график векторов с использованием Matplotlib"}} python/data_visualization -.-> lab-48895{{"Трехмерный график векторов с использованием Matplotlib"}} end

Импорт библиотек и настройка графика

Первым шагом является импорт необходимых библиотек и настройка графика. В этом примере мы будем использовать модуль pyplot Matplotlib и его трехмерный инструментарий для создания трехмерного графика.

import matplotlib.pyplot as plt
import numpy as np

ax = plt.figure().add_subplot(projection='3d')

Создание сетки

Далее мы создадим сетку точек, на которой будем отображать поле векторов. В этом примере мы создадим сетку точек с помощью функции meshgrid NumPy. Функция arange используется для создания массива равномерно распределенных точек в заданном интервале.

x, y, z = np.meshgrid(np.arange(-0.8, 1, 0.2),
                      np.arange(-0.8, 1, 0.2),
                      np.arange(-0.8, 1, 0.8))

Определение направления стрелок

Теперь мы определим направление стрелок. В этом примере мы будем определять направление стрелок с использованием тригонометрических функций NumPy. Функции sin и cos используются для создания массивов u, v и w, которые представляют направление стрелок по осям x, y и z.

u = np.sin(np.pi * x) * np.cos(np.pi * y) * np.cos(np.pi * z)
v = -np.cos(np.pi * x) * np.sin(np.pi * y) * np.cos(np.pi * z)
w = (np.sqrt(2.0 / 3.0) * np.cos(np.pi * x) * np.cos(np.pi * y) *
     np.sin(np.pi * z))

Создание графика векторов

После определения сетки и направления стрелок мы можем создать график векторов. В этом примере мы будем использовать функцию quiver Matplotlib для создания графика. Параметр length задает длину стрелок, а параметр normalize нормализует стрелочки до длины 1.

ax.quiver(x, y, z, u, v, w, length=0.1, normalize=True)

Отображение графика

Наконец, мы отобразим график с использованием функции show Matplotlib.

plt.show()

Резюме

В этом практическом занятии вы узнали, как создать трехмерный график векторов с использованием Python и Matplotlib. Функция meshgrid использовалась для создания сетки точек, а тригонометрические функции NumPy - для определения направления стрелок. Затем функция quiver использовалась для создания графика, а функция show - для его отображения.