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?
Descargue los colormaps.py desde https://github.com/BIDS/colormap/blob/master/colormaps.py , entonces:
import os,sys
scriptpath = "/Your downloading path/colormap-master/"
sys.path.append(os.path.abspath(scriptpath))
import colormaps as cmaps
¡Hecho!
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)