Создание пользовательских делений цветовой полосы в Matplotlib

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

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

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

Введение

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

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

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

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

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

Импортируем необходимые библиотеки и фиксируем случайное состояние

Сначала нам нужно импортировать необходимые библиотеки и зафиксировать случайное состояние для воспроизводимости результатов. Мы будем использовать numpy для генерации случайных данных, matplotlib.pyplot для создания визуализаций и cm из matplotlib для определения цветовых карточек.

import matplotlib.pyplot as plt
import numpy as np
from numpy.random import randn

from matplotlib import cm

## Fixing random state for reproducibility
np.random.seed(19680801)

Создаем график с вертикальной цветовой полосой

Начнем с создания графика с вертикальной цветовой полосой. Сгенерируем некоторые случайные данные с использованием randn из numpy и обрежем значения до диапазона от -1 до 1. Затем создадим объект AxesImage с использованием imshow и цветовой карты coolwarm. Наконец, добавим заголовок к графику.

## Make plot with vertical (default) colorbar
fig, ax = plt.subplots()

data = np.clip(randn(250, 250), -1, 1)

cax = ax.imshow(data, cmap=cm.coolwarm)
ax.set_title('Gaussian noise with vertical colorbar')

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

Далее мы настроим метки делений на вертикальной цветовой полосе. Создадим цветовую полосу с использованием colorbar и укажем позиции делений с помощью параметра ticks. Затем установим метки делений с использованием set_yticklabels для атрибута ax объекта цветовой полосы.

## Add colorbar, make sure to specify tick locations to match desired ticklabels
cbar = fig.colorbar(cax, ticks=[-1, 0, 1])
cbar.ax.set_yticklabels(['< -1', '0', '> 1'])  ## vertically oriented colorbar

Создаем график с горизонтальной цветовой полосой

Теперь мы создадим график с горизонтальной цветовой полосой. Будем следовать тем же шагам, что и в шаге 2, но на этот раз будем использовать цветовую карту afmhot и установим ориентацию цветовой полосы горизонтальной.

## Make plot with horizontal colorbar
fig, ax = plt.subplots()

data = np.clip(randn(250, 250), -1, 1)

cax = ax.imshow(data, cmap=cm.afmhot)
ax.set_title('Gaussian noise with horizontal colorbar')

cbar = fig.colorbar(cax, ticks=[-1, 0, 1], orientation='horizontal')
cbar.ax.set_xticklabels(['Low', 'Medium', 'High'])  ## horizontal colorbar

Отображаем график

Наконец, мы отобразим график с использованием plt.show().

plt.show()

Резюме

В этом практическом занятии мы узнали, как настраивать метки делений на цветовой полосе в Matplotlib. Сначала мы создали график с вертикальной цветовой полосой и настроили метки делений с использованием set_yticklabels. Затем мы создали график с горизонтальной цветовой полосой и настроили метки делений с использованием set_xticklabels. Настройка меток делений на цветовой полосе может помочь сделать ваши визуализации более информативными и легче читать.