Введение
В визуализации данных контурные графики обычно используются для отображения трехмерных данных на двухмерной плоскости. 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(). Наконец, мы интерпретировали результаты и наблюдали разницу между включенными и выключенными угловыми масками.