HOWTO · Matplotlib

Cómo mostrar la cuadrícula de Pyplot en Matplotlib

Muestra cómo añadir una cuadrícula a un gráfico de Python con Matplotlib mediante `grid()` y cómo cambiar el color y el estilo de las líneas.

En esta página

Llama a grid() en un gráfico de Matplotlib antes de show() para mostrar las líneas de la cuadrícula. Puedes definir su color, estilo y grosor, o usar el parámetro axis para mostrar líneas verticales, horizontales o ambas. Los ejemplos empiezan con un gráfico de líneas, añaden y personalizan su cuadrícula, y luego comparan las direcciones disponibles.

Dibujar un gráfico básico en Matplotlib

Empieza con valores para x e y y pásalos a plot(). Las etiquetas identifican cada eje; este mismo gráfico se usa en los ejemplos siguientes para que puedas comparar los cambios en la cuadrícula. Cada valor de x se empareja con el valor de y que ocupa la misma posición, de modo que las listas describen una secuencia de puntos. plot() conecta esos puntos en orden. El título y las etiquetas son opcionales, pero ayudan a identificar qué representan los valores y a adaptar los datos a tu propio gráfico. En esta etapa, los ejes muestran la línea y sus marcas, pero no hay ninguna cuadrícula sobre el área del gráfico. El título y las etiquetas visibles de los ejemplos, que permanecen sin cambios, están en inglés.

from matplotlib import pyplot as plt

x = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
y = [200, 300, 300, 350, 380, 450, 500, 500, 520, 525, 530]

plt.title("My Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.show()

Normal Plot Without Grid in Matplotlib

Usar grid() en un gráfico de Matplotlib

Llama a pyplot.grid() después de trazar los datos y antes de show(). Así se añade la cuadrícula a los ejes actuales; no hace falta mostrar primero el gráfico. En este ejemplo con pyplot, plot() dibuja la línea en los ejes activos y grid() activa sus líneas de cuadrícula. Al mantener ambas llamadas antes de show(), Matplotlib puede representar la figura completa de una sola vez. Si ya tienes un gráfico, añade la llamada a grid() después de las instrucciones de trazado y antes de mostrarlo; no es necesario volver a crear los datos ni las etiquetas. La cuadrícula sigue las posiciones de las marcas de los ejes, lo que facilita estimar los valores de la línea sin modificar los datos representados.

from matplotlib import pyplot as plt

x = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
y = [200, 300, 300, 350, 380, 450, 500, 500, 520, 525, 530]

plt.title("My Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.grid()
plt.show()

Simple Grid in Matplotlib

Cambiar los atributos de la cuadrícula en Matplotlib

Pasa opciones de estilo a grid(). Por ejemplo, color="r" selecciona el rojo, linestyle="dotted" dibuja líneas de puntos y linewidth=1 establece un grosor fino. El valor de linewidth puede ser numérico, incluso un número decimal. Los códigos breves de color y los nombres de estilo de línea que aparecen abajo son opciones habituales; son ejemplos, no una lista exhaustiva. Puedes combinar estos argumentos con nombre en una sola llamada para ajustar la cuadrícula sin cambiar los datos de la línea ni el gráfico. Una cuadrícula más clara o fina puede ayudar a que la línea de datos destaque, mientras que un color contrastante facilita distinguir las líneas de referencia. Elige valores que se vean con claridad sobre los ejes y junto a las demás series de la figura.

from matplotlib import pyplot as plt

x = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
y = [200, 300, 300, 350, 380, 450, 500, 500, 520, 525, 530]

plt.title("My Plot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.grid(color="r", linestyle="dotted", linewidth=1)
plt.show()

Grid Attributes in Matplotlib

Entre los códigos de color habituales de una sola letra están b (azul), g (verde), r (rojo), c (cian), m (magenta), y (amarillo), k (negro) y w (blanco). Algunos estilos de línea comunes son - o solid, -- o dashed, -. o dashdot, y : o dotted. linewidth controla el grosor independientemente del color y el patrón, y acepta valores numéricos como 0.5 o 1.5. El ejemplo usa líneas rojas de puntos con un grosor de uno. Matplotlib también admite colores con nombre y otras formas de indicar estilos de línea; consulta la referencia de la API enlazada si necesitas una opción concreta o más información sobre los valores admitidos.

Dibujar líneas verticales u horizontales

El parámetro axis permite seleccionar la dirección de la cuadrícula: axis="x" dibuja líneas verticales en las posiciones del eje x, axis="y" dibuja líneas horizontales en las posiciones del eje y, y axis="both" dibuja ambas. both es el valor predeterminado. Este ejemplo coloca las tres opciones una junto a otra para compararlas. El nombre indica qué marcas del eje determinan la cuadrícula: las marcas de x están en la parte inferior y superior del gráfico, por lo que sus líneas se trazan en vertical; las de y están a los lados y producen líneas horizontales. Usa axis="x" cuando te sirvan las referencias verticales, por ejemplo, para comparar valores en varias posiciones de x. Usa axis="y" para comparar alturas en el gráfico. Mantén el valor predeterminado o escribe axis="both" cuando sea útil seguir ambas coordenadas. Cada subgráfico tiene su propio objeto Axes, así que el bucle aplica una opción a cada panel y reutiliza los mismos datos.

import matplotlib.pyplot as plt

x = [10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110]
y = [200, 300, 300, 350, 380, 450, 500, 500, 520, 525, 530]

_, (horizontal, vertical, both) = plt.subplots(1, 3)

for axis, setting in ((horizontal, "y"), (vertical, "x"), (both, "both")):
    axis.plot(x, y)
    axis.grid(axis=setting, linestyle="dotted", color="b")
    axis.set_title(f'axis="{setting}"')

plt.show()

X-axis Y-axis Grid in Matplotlib