Grillas en Matplotlib
En este artículo veremos como mostrar y personalizar grillas para mejorar la lectura de los datos de nuestros gráficos con Matplotlib
Mostrar grilla
Las grillas pueden ayudar a leer los datos correspondientes a gráficos de linea, dispersión, barra, etc de Matplotlib. Son especialmente útiles para encontrar los valores ubicados lejos de los ejes cartesianos. Para mostrar la grilla en un gráfico se utiliza el método grid
en el elemento correspondiente a los ejes y se lo configura como True
.
import matplotlib.pyplot as plt
data = [44,25,30,29,40,45,22,10,36,45,20,13]
fig, ax = plt.subplots()
ax.plot(data,"g", linewidth=3)
ax.grid(True)
plt.show()
La grilla por defecto se dibujará siguiendo los marcadores de los ejes x e y con un color gris.
Ancho
Para modificar el ancho de las lineas de la grilla debe agregarse el argumento linewidth
al método grid
.
import matplotlib.pyplot as plt
data = [44,25,30,29,40,45,22,10,36,45,20,13]
fig, ax = plt.subplots()
ax.plot(data,"g", linewidth=3)
ax.grid(linewidth=3)
plt.show()
Tipo de línea
Matplotlib permite cuatro diferentes tipos del lineas para el graficado de la grilla. Cada tipo puede expresarse con un símbolo o su palabra descriptiva. Para configurar el tipo de linea se utiliza el argumento linestyle
del método grid
.
import matplotlib.pyplot as plt
data = [44,25,30,29,40,45,22,10,36,45,20,13]
fig, ax = plt.subplots()
ax.plot(data,"g", linewidth=3)
ax.grid(linestyle='dotted', linewidth=2)
plt.show()
En este ejemplo se especificó un tipo de linea punteado:
A continuación se muestran los tipos de lineas aceptados:
Línea sólida | – | solid |
Línea discontinua | — | dashed |
Línea de puntos | : | dotted |
Línea de puntos y rayas | -. | dashdot |
Color
Es posible especificar el color de la grilla con el argumento color
del método grid
. Este color puede describirse con cualquiera de los formatos de colores soportados por Matplotlib que incluyen RGB, RGBA, Hexadecimal, colores por nombre y otros.
import matplotlib.pyplot as plt
data = [44,25,30,29,40,45,22,10,36,45,20,13]
fig, ax = plt.subplots()
ax.plot(data,"g", linewidth=3)
ax.grid(color='#4260f5')
plt.show()
Grilla mayor y menor
Los gráficos en Matplotlib permiten dos tipos de grillas: mayor y menor.
La grilla mayor o grilla principal es mostrada por defecto en el gráfico. Esta muestra las lineas más importantes para la lectura del gráfico y está diseñada para ayudar a la visualización general del gráfico. . La grilla menor o grilla secuendaria, en cambio, no se muestra por defecto. Esta es más fina y permite mayor precisión en la lectura de los datos.
Para mostrar la grilla menor es necesario agregar el atributo which
al método grid
y pasarle como valor la opción minor
.
import matplotlib.pyplot as plt
data = [44,25,30,29,40,45,22,10,36,45,20,13]
fig, ax = plt.subplots()
ax.plot(data,"g", linewidth=3)
ax.grid(which='minor')
ax.minorticks_on()
plt.show()
Se puede observar que contiene más lineas que las de la grilla mayor.
Ambas grillas, mayor y menor, pueden mostrarse simultáneamente llamando dos veces al método grid
, en uno de estos métodos el valor del atributo which
tendrá el valor major
y en el otro minor
. Dentro de cada método puede especificarse un estilo de linea, color y ancho de linea para cada grilla.
import matplotlib.pyplot as plt
data = [44,25,30,29,40,45,22,10,36,45,20,13]
fig, ax = plt.subplots()
ax.plot(data,"g", linewidth=3)
ax.grid(which='major', color='#807d7d', linewidth=2)
ax.grid(which='minor', color='#cf7269', linewidth=1, linestyle='dashed')
ax.minorticks_on()
plt.show()
En este ejemplo la grilla menor tienen un color gris y un ancho de 2 con una linea continua , mientras que la linea menor tiene un color rojo, una linea de ancho 1 y un estilo de linea discontinuada.
Posición lineas
Las posiciones de las lineas de la grilla mayor están dadas por los ticks que son utilizados para definir los valores de los ejes. Los valores por defecto de los ticks se colocará automáticamente dependiendo de los valores existentes en el gráficos.
Para especificar los valores de los ticks del eje x se utiliza el método set_xticks
y se le pasa como argumento la lista de los valores que serán mostrados en el gráfico.
import matplotlib.pyplot as plt
data = [44,25,30,29,40,45,22,10,36,45,20,13]
fig, ax = plt.subplots()
ax.plot(data,"g", linewidth=3)
ax.set_xticks([0, 5, 10, 15])
ax.grid(linewidth=2)
plt.show()
Con esta configuración se ha modificado el rango de valores mostrados en el eje x, las etiquetas especificadas en dicho eje y las lineas de la grilla.
Si se quieren especificar losticks para el eje y se utiliza el método set_yticks
y se le pasa nuevamente la lista de los valores .
import matplotlib.pyplot as plt
data = [44,25,30,29,40,45,22,10,36,45,20,13]
fig, ax = plt.subplots()
ax.plot(data,"g", linewidth=3)
ax.set_yticks([0, 10, 20, 30,40,50])
ax.grid(linewidth=2)
plt.show()
En este caso se han modificado los rangos, valores y grillas del eje y.
Ambos ticks pueden modificarse simultáneamente permitiendo que la grilla se dibuje solo en los valores especificados.
import matplotlib.pyplot as plt
data = [44,25,30,29,40,45,22,10,36,45,20,13]
fig, ax = plt.subplots()
ax.plot(data,"g", linewidth=3)
ax.set_xticks([0, 5, 10, 15])
ax.set_yticks([0, 10, 20, 30,40,50])
ax.grid(linewidth=2)
plt.show()
En este artículo hemos visto diferentes técnicas para personalizar la grilla de un gráfico realizado con Matplotlib para facilitar la lectura de sus datos. También hemos visto cómo combinar la grilla menor y mayor para lograr lecturas más detalladas y cómo especificar la ubicación de las lineas de grilla modificando los ticks de nuestro gráficos.