Контурный график и логарифмическая шкала цветов

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

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

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

Введение

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

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

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

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

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

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

Нам необходимо импортировать следующие библиотеки:

  • matplotlib.pyplot для создания графиков и визуализации
  • numpy для генерации набора данных
import matplotlib.pyplot as plt
import numpy as np

Генерируем набор данных

Мы сгенерируем набор данных с положительными и отрицательными значениями с использованием numpy:

N = 100
x = np.linspace(-3.0, 3.0, N)
y = np.linspace(-2.0, 2.0, N)

X, Y = np.meshgrid(x, y)

## Низкий горб с выступом.
## Требуется иметь ось z/цвет в логарифмическом масштабе, чтобы мы увидели как горб, так и выступ.
## Линейный масштаб показывает только выступ.
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X * 10)**2 - (Y * 10)**2)
z = Z1 + 50 * Z2

## Внесем некоторые отрицательные значения (нижний левый угол), чтобы вызвать проблемы с логарифмами:
z[:5, :5] = -1

## Следующее не является строго необходимым, но оно устранит
## предупреждение.  Закомментируйте его, чтобы увидеть предупреждение.
z = ma.masked_where(z <= 0, z)

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

Мы будем использовать функцию contourf для создания заполненной карты уровня с логарифмической шкалой цветов:

fig, ax = plt.subplots()
cs = ax.contourf(X, Y, z, locator=ticker.LogLocator(), cmap=cm.PuBu_r)

cbar = fig.colorbar(cs)

plt.show()

Настраиваем график

Мы можем настроить график, добавив подписи, заголовки и изменив карту цветов:

fig, ax = plt.subplots()
cs = ax.contourf(X, Y, z, locator=ticker.LogLocator(), cmap=cm.coolwarm)

ax.set_title('Contourf Plot with Log Color Scale')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')

cbar = fig.colorbar(cs)

plt.show()

Резюме

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