Как использовать viridis в matplotlib 1.4
Я хочу использовать colormap "viridis" (http://bids.github.io/colormap/), и я пока не буду обновлять версию 1.5. Таким образом, я загрузил colormaps.py
из https://github.com/BIDS/colormap. К сожалению, я не могу заставить его работать. Это то, что я делаю:
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
import colormaps as cmaps
img=mpimg.imread('stinkbug.png')
lum_img = np.flipud(img[:,:,0])
plt.set_cmap(cmaps.viridis)
imgplot = plt.pcolormesh(lum_img)
Это дает мне ValueError
, трассировка заканчивается на
ValueError: Colormap viridis не распознается. Возможные значения: Spectral, summer, coolwarm,...
(И затем полный список изначально установленных цветовых палитр.)
Любые мысли о том, как исправить эту проблему?
Ответы
Ответ 1
Чтобы установить viridis
в качестве цветовой карты с помощью set_cmap
, вы должны сначала ее зарегистрировать:
import colormaps as cmaps
plt.register_cmap(name='viridis', cmap=cmaps.viridis)
plt.set_cmap(cmaps.viridis)
img=mpimg.imread('stinkbug.png')
lum_img = np.flipud(img[:,:,0])
imgplot = plt.pcolormesh(lum_img)
Ответ 2
Вместо использования set_cmap
, для которого требуется экземпляр matplotlib.colors.Colormap
, вы можете установить cmap
непосредственно в вызове pcolormesh
(cmaps.viridis
является matplotlib.colors.ListedColormap
)
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
import colormaps as cmaps
img=mpimg.imread('stinkbug.png')
lum_img = np.flipud(img[:,:,0])
imgplot = plt.pcolormesh(lum_img, cmap=cmaps.viridis)
Ответ 3
Я только что скопировал
_viridis_data = [[0.267004, 0.004874, 0.329415],
[0.268510, 0.009605, 0.335427],
[0.269944, 0.014625, 0.341379],
:
[0.983868, 0.904867, 0.136897],
[0.993248, 0.906157, 0.143936]]
из https://github.com/BIDS/colormap/blob/master/colormaps.py
и добавьте:
from matplotlib.colors import ListedColormap
viridis = ListedColormap(_viridis_data, name='viridis')
plt.register_cmap(name='viridis', cmap=viridis)
plt.set_cmap(viridis)
Ответ 4
Загрузите colormaps.py из здесь, затем:
import os,sys
scriptpath = "/Your downloading path/colormap-master/"
sys.path.append(os.path.abspath(scriptpath))
import colormaps as cmaps
Готово!