Построение трехмерной поверхности в полярных координатах

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

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

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

Введение

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

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

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) matplotlib(("Matplotlib")) -.-> matplotlib/AdvancedPlottingGroup(["Advanced Plotting"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) 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/DataStructuresGroup -.-> python/tuples("Tuples") python/DataStructuresGroup -.-> python/sets("Sets") matplotlib/AdvancedPlottingGroup -.-> matplotlib/3d_plots("3D Plots") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-48972{{"Построение трехмерной поверхности в полярных координатах"}} matplotlib/figures_axes -.-> lab-48972{{"Построение трехмерной поверхности в полярных координатах"}} python/tuples -.-> lab-48972{{"Построение трехмерной поверхности в полярных координатах"}} python/sets -.-> lab-48972{{"Построение трехмерной поверхности в полярных координатах"}} matplotlib/3d_plots -.-> lab-48972{{"Построение трехмерной поверхности в полярных координатах"}} python/importing_modules -.-> lab-48972{{"Построение трехмерной поверхности в полярных координатах"}} python/numerical_computing -.-> lab-48972{{"Построение трехмерной поверхности в полярных координатах"}} python/data_visualization -.-> lab-48972{{"Построение трехмерной поверхности в полярных координатах"}} end

Импортируем необходимые библиотеки

Начнем с импорта необходимых библиотек для этого практикума, в которых включаются Matplotlib и NumPy. Matplotlib - это библиотека для построения графиков в Python, а NumPy - библиотека для языка программирования Python, которая добавляет поддержку для больших многомерных массивов и матриц.

import matplotlib.pyplot as plt
import numpy as np

Создаем сеть (сетку)

Далее мы создадим сеть (сетку) в полярных координатах и вычислим соответствующее Z. Мы создадим массив значений радиуса r, массив значений угла p, а затем используем функцию meshgrid() библиотеки NumPy для создания сетки значений R и P. Наконец, мы используем уравнение Z для вычисления высоты каждой точки на поверхности.

r = np.linspace(0, 1.25, 50)
p = np.linspace(0, 2*np.pi, 50)
R, P = np.meshgrid(r, p)
Z = ((R**2 - 1)**2)

Выражаем сеть (сетку) в декартовой системе координат

Теперь мы выразим сеть (сетку) в декартовой системе координат с использованием функций cos() и sin() библиотеки NumPy.

X, Y = R*np.cos(P), R*np.sin(P)

Построим поверхность

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

fig = plt.figure()
ax = fig.add_subplot(projection='3d')
ax.plot_surface(X, Y, Z, cmap=plt.cm.YlGnBu_r)

Настройка лимитов и добавление подписей

Наконец, мы настроим пределы графика и добавим подписи осей с использованием функций set_zlim(), set_xlabel(), set_ylabel() и set_zlabel() библиотеки Matplotlib. Мы также используем LaTeX-режим математики для написания подписей осей.

ax.set_zlim(0, 1)
ax.set_xlabel(r'$\phi_\mathrm{real}$')
ax.set_ylabel(r'$\phi_\mathrm{im}$')
ax.set_zlabel(r'$V(\phi)$')

Резюме

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