Руководство по построению графиков QuadMesh с использованием Matplotlib

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

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

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

Введение

В этом руководстве вы узнаете, как использовать библиотеку Matplotlib для создания графика QuadMesh. QuadMesh - это более быстрая обобщенная версия функции pcolor, но с некоторыми ограничениями. Демонстрация в этом руководстве покажет ошибку в QuadMesh при работе с замаскированными данными.

Советы по использованию ВМ

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) matplotlib(("Matplotlib")) -.-> matplotlib/AdvancedTopicsGroup(["Advanced Topics"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) matplotlib(("Matplotlib")) -.-> matplotlib/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) matplotlib/BasicConceptsGroup -.-> matplotlib/importing_matplotlib("Importing Matplotlib") python/DataStructuresGroup -.-> python/lists("Lists") python/DataStructuresGroup -.-> python/tuples("Tuples") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") matplotlib/AdvancedTopicsGroup -.-> matplotlib/matplotlib_config("Customizing Matplotlib Configurations") python/DataScienceandMachineLearningGroup -.-> python/numerical_computing("Numerical Computing") python/DataScienceandMachineLearningGroup -.-> python/data_visualization("Data Visualization") subgraph Lab Skills matplotlib/importing_matplotlib -.-> lab-48892{{"Руководство по построению графиков QuadMesh с использованием Matplotlib"}} python/lists -.-> lab-48892{{"Руководство по построению графиков QuadMesh с использованием Matplotlib"}} python/tuples -.-> lab-48892{{"Руководство по построению графиков QuadMesh с использованием Matplotlib"}} python/build_in_functions -.-> lab-48892{{"Руководство по построению графиков QuadMesh с использованием Matplotlib"}} python/importing_modules -.-> lab-48892{{"Руководство по построению графиков QuadMesh с использованием Matplotlib"}} python/using_packages -.-> lab-48892{{"Руководство по построению графиков QuadMesh с использованием Matplotlib"}} matplotlib/matplotlib_config -.-> lab-48892{{"Руководство по построению графиков QuadMesh с использованием Matplotlib"}} python/numerical_computing -.-> lab-48892{{"Руководство по построению графиков QuadMesh с использованием Matplotlib"}} python/data_visualization -.-> lab-48892{{"Руководство по построению графиков QuadMesh с использованием Matplotlib"}} end

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

import numpy as np
from matplotlib import pyplot as plt

Определение данных

n = 12
x = np.linspace(-1.5, 1.5, n)
y = np.linspace(-1.5, 1.5, n * 2)
X, Y = np.meshgrid(x, y)
Qx = np.cos(Y) - np.cos(X)
Qz = np.sin(Y) + np.sin(X)
Z = np.sqrt(X**2 + Y**2) / 5
Z = (Z - Z.min()) / (Z.max() - Z.min())
Zm = np.ma.masked_where(np.abs(Qz) < 0.5 * np.max(Qz), Z)

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

fig, axs = plt.subplots(nrows=1, ncols=3)
axs[0].pcolormesh(Qx, Qz, Z, shading='gouraud')
axs[0].set_title('Without masked values')
cmap = plt.colormaps[plt.rcParams['image.cmap']].with_extremes(bad='y')
axs[1].pcolormesh(Qx, Qz, Zm, shading='gouraud', cmap=cmap)
axs[1].set_title('With masked values')
axs[2].pcolormesh(Qx, Qz, Zm, shading='gouraud')
axs[2].set_title('With masked values')
fig.tight_layout()
plt.show()

Объяснение

  • Шаг 2: Данные определяются с использованием массивов numpy. Массивы X и Y используются для создания сетки (meshgrid), которая используется для вычисления значений Qx и Qz. Затем значения Z вычисляются на основе значений Qx и Qz. Массив Zm создается путем замаскирования значений, где абсолютное значение Qz меньше 0,5 раза максимального значения Qz.
  • Шаг 3: С помощью метода subplots создается фигура с тремя подграфиками. Функция pcolormesh используется для создания графика QuadMesh для каждого подграфика. Первый подграфик показывает график без замаскированных значений. Второй подграфик показывает график с замаскированными значениями и пользовательской цветовой картой (colormap), где замаскированная область имеет желтый цвет. Третий подграфик показывает график с замаскированными значениями и стандартной цветовой картой, где замаскированная область прозрачна.
  • Шаг 4: График QuadMesh - это полезный инструмент для визуализации двумерных данных. В этом руководстве мы узнали, как использовать функцию pcolormesh для создания графика QuadMesh и как обрабатывать замаскированные данные в графике.

Резюме

В этом руководстве был представлен пошаговый план по созданию графика QuadMesh с использованием библиотеки Matplotlib. Мы узнали, как обрабатывать замаскированные данные в графике и как настраивать цветовую карту (colormap) для замаскированной области. График QuadMesh - это мощный инструмент для визуализации двумерных данных и особенно полезен для научных приложений.