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