Как установить цветовую карту по умолчанию в Matplotlib

Особенно при работе с изображениями в оттенках серого очень сложно установить цветовую карту для каждой команды imshow как imshow(i, cmap='gray'). Как установить цветную карту по умолчанию для использования matplotlib для оттенков серого или любой другой цветовой карты?

Ответ 1

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

import matplotlib as mpl
mpl.rc('image', cmap='gray')

Для версий matplotlib до 2.0 вы должны использовать dict rcParams. Это все еще работает в более новых версиях.

import matplotlib.pyplot as plt
plt.rcParams['image.cmap'] = 'gray'

Чтобы изменить цветовую карту по умолчанию, отредактируйте файл конфигурации matplotlibrc и добавьте строку image.cmap: gray. Замените значение серого на любое другое допустимое цветное изображение в соответствии с вашими потребностями. Файл конфигурации должен быть в ~/.config/matplotlib/matplotlibrc, но вы можете узнать точное местоположение с помощью

mpl.matplotlib_fname()

Это особенно полезно, если у вас есть несколько версий matplotlib в разных виртуальных средах.

Смотрите также http://txt.arboreus.com/2014/10/21/how-to-set-default-colormap-in-matplotlib.html и для общей конфигурации Matplotlib http://matplotlib.org/users/customizing.html

Ответ 2

Вы можете сделать либо,

plt.set_cmap('jet')

или же

plt.rcParams['image.cmap']='jet'

Однако обратите внимание, что если вы передаете значение для параметра color в любом из API, то это значение по умолчанию будет проигнорировано. В этом случае вы должны сделать что-то вроде этого:

color = plt.cm.hsv(r) # r is 0 to 1 inclusive
line = matplotlib.lines.Line2D(xdata, ydata, color=color)