set_array from example color python matplotlib colormap

python - from - Cómo utilizar viridis en matplotlib 1.4.



python colorbar colors (4)

Quiero usar el mapa de colores "viridis" ( http://bids.github.io/colormap/ ), y todavía no estaré actualizando a la versión de desarrollo 1.5. Por lo tanto, he descargado colormaps.py desde https://github.com/BIDS/colormap . Desafortunadamente, no soy capaz de hacerlo funcionar. Esto es lo que hago:

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)

Esto me da un ValueError , el rastreo que termina con,

ValueError: No se reconoce el mapa de colores viridis. Los valores posibles son: Spectral, summer, coolwarm, ...

(Y luego la lista completa de mapas de color originalmente instalados).

¿Alguna idea sobre cómo solucionar este problema?



En lugar de usar set_cmap , que requiere una instancia matplotlib.colors.Colormap , puede establecer el cmap directamente en la llamada pcolormesh

( cmaps.viridis es un 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)


Lo que hice es simplemente copiar el

_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]]

desde https://github.com/BIDS/colormap/blob/master/colormaps.py

y añadir:

from matplotlib.colors import ListedColormap viridis = ListedColormap(_viridis_data, name=''viridis'') plt.register_cmap(name=''viridis'', cmap=viridis) plt.set_cmap(viridis)


Para establecer viridis como su mapa de set_cmap usando set_cmap , primero debe registrarlo:

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)