如何在matplotlib 1.4中使用viridis

ukr*_*utt 18 python matplotlib colormap

我想使用色彩映射"viridis"(http://bids.github.io/colormap/),我还不会更新到开发版本1.5.因此,我colormaps.pyhttps://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)
Run Code Online (Sandbox Code Playgroud)

这给了我一个ValueError,结尾的追溯,

ValueError:无法识别Colormap viridis.可能的值有:光谱,夏天,冷静,......

(然后是最初安装的色彩映射的完整列表.)

有关如何解决此问题的任何想法?

aga*_*rs3 15

要设置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)
Run Code Online (Sandbox Code Playgroud)


tmd*_*son 11

您可以直接在调用中设置set_cmap,而不是使用需要matplotlib.colors.Colormap实例的实例cmappcolormesh

(cmaps.viridismatplotlib.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)
Run Code Online (Sandbox Code Playgroud)