Обратная карта цветов в Matplotlib: использование в plot_surface

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для инвертирования цветовой схемы в matplotlib следует добавить к её названию суффикс _r:

Python
Скопировать код
cmap_reversed = plt.cm.viridis_r  # Теперь цветовая схема 'viridis' в обратном порядке!

Ее применение происходит следующим образом:

Python
Скопировать код
plt.imshow(data, cmap=cmap_reversed)
Кинга Идем в IT: пошаговый план для смены профессии

Дополнительные методы инверсии цветовой схемы

Помимо быстрого метода, существуют и другие подходы к инвертированию цветовой схемы в matplotlib, которые могут быть полезны в различных случаях применения.

Инвертирование встроенных цветовых схем

У каждой цветовой схемы, предустановленной в matplotlib, есть обратный аналог, обозначаемый суффиксом _r. Например, для инвертирования цветовой схемы при использовании plot_surface:

Python
Скопировать код
from mpl_toolkits.mplot3d import Axes3D

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
surface = ax.plot_surface(X, Y, Z, cmap='coolwarm_r')
plt.show()

Инвертирование схемы на лету

Иногда нужно изменить цветовую схему во время выполнения программы. Начиная с версии matplotlib 2.0 это можно выполнить с помощью метода reversed():

Python
Скопировать код
from matplotlib.pyplot import get_cmap

original_cmap = get_cmap('cividis')
reversed_cmap = original_cmap.reversed()

Инвертирование пользовательских цветовых схем

Те, кто предпочитает определять собственные цветовые схемы ListedColormap или LinearSegmentedColormap, могут также инвертировать их:

Python
Скопировать код
from matplotlib.colors import ListedColormap, LinearSegmentedColormap

listed_cmap = ListedColormap(['red', 'green', 'blue'])
listed_cmap_reversed = ListedColormap(listed_cmap.colors[::-1])

linear_cmap = LinearSegmentedColormap.from_list('my_cmap', ['red', 'green', 'blue'])
linear_cmap_reversed = LinearSegmentedColormap.from_list('my_cmap_r', linear_cmap.colors[::-1])

Визуализация сравнения оригинальной и инвертированной цветовых схем

Для сравнения оригинальной и инвертированной цветовых схем можно использовать ColorbarBase из модуля matplotlib.colorbar:

Python
Скопировать код
from matplotlib.colorbar import ColorbarBase
from matplotlib.colors import Normalize

norm = Normalize(vmin=0, vmax=1)
fig, ax = plt.subplots(2)

cb1 = ColorbarBase(ax[0], cmap=listed_cmap, norm=norm, orientation='horizontal')
cb2 = ColorbarBase(ax[1], cmap=listed_cmap_reversed, norm=norm, orientation='horizontal')
plt.tight_layout()
plt.show()

Визуализация

Инверсия цветовой схемы дает возможность по-новому взглянуть на меняющиеся цвета:

Markdown
Скопировать код
Стандартная цветовая схема: 🟥🟧🟨🟩🟦🟪

Измените привычную перспективу:

Python
Скопировать код
new_cmap = plt.cm.get_cmap('original_cmap').reversed()

Итак, у вас новый градиент:

Markdown
Скопировать код
Инвертированная цветовая схема: 🟪🟦🟩🟨🟧🟥

Цвета заменились друг на друга, предоставляя свежий взгляд на данные.

Гарантия качества визуализации при использовании инвертированных цветовых схем

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

Python
Скопировать код
from matplotlib.colors import ListedColormap

custom_colors = ['#000000', '#123456', '#654321', '#ffffff']
custom_cmap = ListedColormap(custom_colors)
reverse_colors = custom_cmap.colors[::-1]
custom_cmap_r = ListedColormap(reverse_colors)

Применив к графикам инвертированную схему custom_cmap_r, вы получите уникальное визуальное представление данных.

Полезные материалы

  1. Как инвертировать цветовую схему в matplotlib – Stack Overflow — обсуждение методов инвертирования цветовых схем в Matplotlib.
  2. Визуализация данных с помощью Matplotlib в Python (руководство) – Real Python — подробное руководство по настройке и инвертированию цветовых схем.
  3. Справка по цветовым схемам — Документация Matplotlib 3.8.2 — примеры и детали работы с цветовыми схемами Matplotlib.
  4. Создание собственной цветовой схемы в Matplotlib (Medium) — пошаговое руководство по созданию пользовательских цветовых схем.
  5. Инвертирование цветовой схемы в Python с использованием Matplotlib (Medium) — примеры инвертирования цветовых схем на практике.