Mapa de colores inverso en matplotlib

Resuelto Mermoz asked hace 14 años • 7 respuestas

Me gustaría saber cómo invertir simplemente el orden de los colores de un mapa de colores determinado para poder usarlo con plot_surface.

Mermoz avatar Jul 19 '10 15:07 Mermoz
Aceptado

Todos los mapas de colores estándar también tienen versiones invertidas. Tienen los mismos nombres _rañadidos al final. ( Documentación aquí. )

ptomato avatar Jul 19 '2010 11:07 ptomato

La solución es bastante sencilla. Suponga que desea utilizar el esquema de mapa de colores "otoño". La versión estándar:

cmap = matplotlib.cm.autumn

Para invertir el espectro de colores del mapa de colores, use la función get_cmap() y agregue '_r' al título del mapa de colores de esta manera:

cmap_reversed = matplotlib.cm.get_cmap('autumn_r')
Jm M avatar Jun 20 '2017 00:06 Jm M

A partir de Matplotlib 2.0, existe un reversed()método para objetos ListedColormapy LinearSegmentedColorMap, por lo que puedes hacerlo

cmap_reversed = cmap.reversed()

Aquí está la documentación.

David Stansby avatar Mar 06 '2018 21:03 David Stansby

En matplotlib, un mapa de colores no es una lista, pero contiene la lista de sus colores como colormap.colors. Y el módulo matplotlib.colorsproporciona una función ListedColormap()para generar un mapa de colores a partir de una lista. Entonces puedes invertir cualquier mapa de color haciendo

colormap_r = ListedColormap(colormap.colors[::-1])
Gilles avatar Jun 15 '2013 21:06 Gilles