python - instalar - Los colores de trazado predeterminados más bonitos en matplotlib
plot() python (7)
Los colores predeterminados utilizados en matplotlib (ejemplo aquí: http://matplotlib.org/examples/pylab_examples/pie_demo.html ) son bastante simples y feos. También he notado que si trazas más de 5-6 series diferentes en una sola parcela, matplotlib comienza a repetir colores.
He visto algunos gráficos preciosos que salen de otros paquetes de visualización (en otros idiomas, por defecto) que pueden tener 5-6 series diferentes cubiertas por un solo color en diferentes tonos. ¿Alguien tiene un buen conjunto de colores para usar en matplotlib? ¿Y una forma de hacer que matplotlib lo use por defecto?
Eche un vistazo a la biblioteca de prettyplotlib , recién mencionada por amigos, que modifica matplotlib para que esté mejor alineada con las ideas de Edward Tufte , así como con un trabajo muy estudiado por Cynthia Brewer sobre la percepción del color.
El paquete Seaborn (basado en Matplotlib) tiene bonitos estilos de gráficos predeterminados, y he descubierto que es una forma agradable de crear un atractivo ciclo de color.
Tienen una agradable discusión sobre las paletas de colores aquí: https://stanford.edu/~mwaskom/software/seaborn/tutorial/color_palettes.html
El siguiente código demuestra cómo puede elegir un nuevo color_cycle automáticamente para un diagrama de línea simple:
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
num_lines = 6
ax = plt.subplot(111)
ax.set_color_cycle(sns.color_palette("coolwarm_r",num_lines))
for i in range(num_lines):
x = np.linspace(0,20,200)
ax.plot(x,np.sin(x)+i)
plt.show()
Si solo quiere cambiar los colores de línea y no usar los otros preajustes de nacimiento marino, como el fondo gris, simplemente importe Seaborn con
import seaborn.apionly as sns
La pregunta fue hecha hace 2 años, y hoy es mucho más fácil obtener un mejor estilo para su trama. Ni siquiera necesita paquetes externos para eso. Como @asmaier mencionó en su comentario, la funcionalidad mpltools.style se ha integrado en Matplotlib 1.4, por lo que puede cambiar de estilo con:
plt.style.use(style_name)
Por ejemplo:
import matplotlib.pyplot as plt
import numpy as np
plt.style.use(''ggplot'')
num_lines = 6
ax = plt.subplot(111)
for i in range(num_lines):
x = np.linspace(0,20,200)
ax.plot(x,np.sin(x)+i)
plt.show()
Puede enumerar todos los estilos disponibles con:
print plt.style.available
En Matplotlib 1.5 se han agregado varios estilos nuevos, incluidos muchos estilos del proyecto Seaborn:
plt.style.use(''seaborn-dark-palette'')
Para obtener un conjunto de colores más rico que se puede utilizar con matplotlib
, consulte la palettable con los maravillosos palettable Wes Anderson .
$ pip install palettable
$ python
>>> from palettable.colorbrewer.qualitative import Dark2_7
Puede configurar un archivo .matplotlibrc
. Un ejemplo realmente muy comentado está here . Me parece que la opción que quiere cambiar es axes.color_cycle
. No tengo ningún consejo sobre qué hacer para una interfaz más bonita - Eso es un poco demasiado subjetivo Desbordamiento de pila ;-) (y estoy contento con los valores predeterminados)
Puede usar la funcionalidad de mapa de color de matplotlib.
Un buen ejemplo es en this pregunta. Puede mostrar sus opciones de mapa de colores con este script .
Puedes usar las hojas de estilo de Matplotlib . Se ha portado desde la biblioteca mpltools, que tiene un módulo de style que redefine los parámetros rc de matplotlib.
Como ejemplo, vea el uso del estilo ggplot y el manual de Matplotlib .