Маскированные контурные графики с использованием Matplotlib

Beginner

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

Введение

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

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

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

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

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

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

Для создания замаскированных контурных графиков с использованием Matplotlib нам нужно импортировать следующие библиотеки:

  • numpy: библиотека для языка программирования Python, которая обеспечивает поддержку для больших многомерных массивов и матриц.
  • matplotlib.pyplot: коллекция функций, которая предоставляет простой интерфейс для создания различных типов графиков.
import matplotlib.pyplot as plt
import numpy as np

Создание данных для построения графика

В этом шаге мы создадим данные для построения на контурном графике. Мы используем функцию np.meshgrid(), чтобы создать сетку точек, а затем вычисляем значения z с использованием функций синуса и косинуса.

## Data to plot.
x, y = np.meshgrid(np.arange(7), np.arange(10))
z = np.sin(0.5 * x) * np.cos(0.52 * y)

Маскирование данных

В этом шаге мы замаскируем некоторые значения z с использованием булевской маски. Мы создаем массив mask с использованием функции np.zeros_like(), а затем устанавливаем некоторые значения в True, чтобы их замаскировать.

## Mask various z values.
mask = np.zeros_like(z, dtype=bool)
mask[2, 3:5] = True
mask[3:5, 4] = True
mask[7, 2] = True
mask[5, 0] = True
mask[0, 6] = True
z = np.ma.array(z, mask=mask)

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

В этом шаге мы создадим замаскированный контурный график с использованием функции contourf(). Мы передаем массивы x, y и z в эту функцию, а также аргумент corner_mask, который устанавливается в True или False в зависимости от типа графика, который мы хотим создать.

corner_masks = [False, True]
fig, axs = plt.subplots(ncols=2)
for ax, corner_mask in zip(axs, corner_masks):
    cs = ax.contourf(x, y, z, corner_mask=corner_mask)
    ax.contour(cs, colors='k')
    ax.set_title(f'{corner_mask=}')

    ## Plot grid.
    ax.grid(c='k', ls='-', alpha=0.3)

    ## Indicate masked points with red circles.
    ax.plot(np.ma.array(x, mask=~mask), y, 'ro')

plt.show()

Интерпретация результатов

В этом шаге мы интерпретируем результаты замаскированного контурного графика. Мы можем наблюдать, что параметр corner_mask контролирует, замаскированы или нет угловые точки графика. Когда corner_mask установлен в True, углы контурного графика замаскированы, а когда он установлен в False, они не замаскированы. Мы также можем увидеть, что замаскированные точки обозначены красными кружочками.

Резюме

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