ylorrd color cmap python design matplotlib plot seaborn

python - cmap - seaborn color_palette como matplotlib colormap



seaborn palette dictionary (4)

Seaborn ofrece una función llamada paleta de colores, que le permite crear fácilmente nuevas paletas de colores para parcelas.

colors = ["#67E568","#257F27","#08420D","#FFF000","#FFB62B","#E56124","#E53E30","#7F2353","#F911FF","#9F8CA6"] color_palette = sns.color_palette(colors)

Quiero transformar color_palette en cmap, que puedo usar en matplotlib, pero no veo cómo puedo hacer esto.

Lamentablemente funciones como "cubehelix_palette", "light_palette", ... tienen un parámetro "as_cmap". "color_palette" no, desafortunadamente.


La mayoría de los métodos marinos para generar paletas de colores tienen un argumento opcional as_cmap que por defecto es False . Puede usar para obtener directamente un mapa de color Matplotlib:

import seaborn as sns import matplotlib.pylab as plt import numpy as np # construct cmap my_cmap = sns.light_palette("Navy", as_cmap=True) N = 500 data1 = np.random.randn(N) data2 = np.random.randn(N) colors = np.linspace(0,1,N) plt.scatter(data1, data2, c=colors, cmap=my_cmap) plt.colorbar() plt.show()


La primera respuesta es de alguna manera correcta pero demasiado larga con mucha información innecesaria. La respuesta correcta y corta es:

Para convertir cualquier sns.color_palette() a un cmap compatible matplotlib necesita dos líneas de código

from matplotlib.colors import ListedColormap cmap = ListedColormap(sns.color_palette())


Solo un consejo adicional: si uno quiere una barra de colores continua / mapa de colores, agregue 256 ya que la cantidad de colores requeridos de Seaborn Colorscheme ayuda mucho.

cmap = ListedColormap(sns.color_palette("Spectral",256))


Tienes que convertir una lista de colores de la paleta marinera a un mapa de colores de matplolib (thx a @RafaelLopes para los cambios propuestos):

import seaborn as sns import matplotlib.pylab as plt import numpy as np from matplotlib.colors import ListedColormap # construct cmap flatui = ["#9b59b6", "#3498db", "#95a5a6", "#e74c3c", "#34495e", "#2ecc71"] my_cmap = ListedColormap(sns.color_palette(flatui).as_hex()) N = 500 data1 = np.random.randn(N) data2 = np.random.randn(N) colors = np.linspace(0,1,N) plt.scatter(data1, data2, c=colors, cmap=my_cmap) plt.colorbar() plt.show()