Cómo mostrar la cuadrícula Pyplot en Matplotlib
- Dibujar una gráfica normal en Matplotlib
-
Usar
grid()
en una trama en Matplotlib - Cambiar los atributos de la red en Matplotlib
- Dibujar líneas verticales u horizontales
Este tutorial explica cómo dibujar una cuadrícula en la parte superior de una trama en Python Matplotlib. Utilizaremos la función grid()
para lograrlo. También demuestra cómo usar los argumentos de grid()
function para personalizar el color y la forma de la cuadrícula e incluso dibujar sólo las líneas verticales u horizontales.
Dibujar una gráfica normal en Matplotlib
Comencemos creando dos listas para representar los valores de x e y y usarlos para dibujar un gráfico. Llama a la función plot()
y pasa las listas x y y como argumentos, luego llama a la función show()
.
Usa las funciones title()
, xlabel
y ylabel()
para añadir el título y las etiquetas a tu gráfica para hacerla comprensible.
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("MyPlot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.show()
Resultado:
Pero una trama normal parece aburrida y se pierde algo. Ahora, tenemos que añadir una cuadrícula a nuestra trama.
Usar grid()
en una trama en Matplotlib
Usaremos la función Matplotlib grid()
para dibujar una cuadrícula en la parte superior del gráfico.
Necesitamos llamar a la función grid()
antes de show()
, y eso dibujará una cuadrícula en el gráfico anterior.
Vea el código a continuación.
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("MyPlot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.grid()
plt.show()
Resultado:
Cambiar los atributos de la red en Matplotlib
La función grid()
acepta argumentos para personalizar el color y el estilo de la grilla. Podemos llamar a grid()
así grid(color='r', linestyle='dotted', linewidth=1)
para obtener una cuadrícula con líneas rojas, punteadas y delgadas.
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("MyPlot")
plt.xlabel("X Axis")
plt.ylabel("Y Axis")
plt.plot(x, y)
plt.grid(color="r", linestyle="dotted", linewidth=1)
plt.show()
Resultado:
El ancho de línea es del tipo de datos de flotante, y aquí están todos los códigos de color y estilos de línea disponibles para usted.
Códigos de color válidos:
código | color |
---|---|
b |
azul |
g |
verde |
r |
rojo |
c |
cyan |
m |
magenta |
y |
amarillo |
k |
negro |
w |
blanco |
Estilos de línea válidos:
-
--
-.
:
None
- ``
solid
dashed
dashdot
dotted
Dibujar líneas verticales u horizontales
La función grid()
por defecto es dibujar tanto el eje horizontal como el vertical, pero puede que quieras personalizar esto también. Puedes usar el argumento axis para hacer esto. Llama a grid()
con axis='x'
para dibujar sólo las líneas verticales o axis='y'
para dibujar sólo las líneas horizontales o axis='both'
para dibujar ambas, que es el comportamiento por defecto.
Mira el código de abajo y su salida.
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]
_, (a, b, c) = plt.subplots(1, 3)
a.grid(axis="y", linestyle="dotted", color="b")
a.plot(x, y)
a.set_title("axis='y'")
b.grid(axis="x", linestyle="dotted", color="b")
b.plot(x, y)
b.set_title("axis='x'")
c.grid(axis="both", linestyle="dotted", color="b")
c.plot(x, y)
c.set_title("axis='both'")
plt.show()
Resultado: