Dibujar líneas verticales en una parcela Matplotlib
Vaibhav Vaibhav
29 noviembre 2021
Cuando trabajamos con gráficos, a menudo tenemos que dibujar líneas horizontales y verticales sobre los gráficos para representar cierta información. Podría ser un valor promedio, un valor de umbral o algún rango. Este artículo hablará sobre cómo podemos crear líneas verticales en gráficos generados usando Matplotlib
en Python.
Dibujar líneas verticales usando axvline()
en Matplotlib
axvline()
es una función de la biblioteca Matplotlib
que dibuja líneas verticales a lo largo de los ejes. Esta función toma muchos argumentos, pero hablaremos de tres de ellos que se enumeran a continuación.
x
: The position of the line on thex-axis
ymin
: este valor debe estar entre 0 y 1, donde 0 representa la parte inferior de la gráfica y 1 representa la parte superior de la gráfica.ymax
: este valor debe estar entre 0 y 1, donde 0 representa la parte inferior de la gráfica y 1 representa la parte superior de la gráfica.
Otros argumentos incluyen color
, label
, marker
, snap
, transform
, url
, visible
, etc.
Consulte los siguientes ejemplos para comprender cómo utilizar esta función.
Ejemplo 1: trazado de una sola línea vertical
import random
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y = np.array([1, 2, 5, 6, 3, 11, 8, 5, 10, 11])
# Plotting a single vertical line
plt.axvline(x=5, color="green", label="Index 5")
plt.plot(x, y, color="red", label="Values")
plt.title("Plotting a single vertical line")
plt.xlabel("Indexes")
plt.ylabel("Values")
plt.legend()
plt.show()
Producción:
Ejemplo 2: trazado de varias líneas verticales
import random
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y = np.array([1, 2, 5, 6, 3, 11, 8, 5, 10, 11])
for i in range(3):
plt.axvline(
x=random.randint(1, 10),
color=np.random.rand(
3,
),
) # Plotting a vertical line
plt.plot(x, y, color="red", label="Values")
plt.title("Plotting multiple vertical lines")
plt.xlabel("Indexes")
plt.ylabel("Values")
plt.legend()
plt.show()
Producción:
Ejemplo 3: varias líneas con longitudes variables
import random
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
y = np.array([1, 2, 5, 6, 3, 11, 8, 5, 10, 11])
yMins = [1, 0.7, 0.5]
yMaxs = [0.1, 0.4, 0]
positions = [2, 4, 8]
for i in range(3):
plt.axvline(
x=positions[i],
ymin=yMins[i],
ymax=yMaxs[i],
color=np.random.rand(
3,
),
) # Plotting a vertical line
plt.plot(x, y, color="red", label="Values")
plt.title("Plotting a multiple vertical lines")
plt.xlabel("Indexes")
plt.ylabel("Values")
plt.legend()
plt.show()
Producción:
Autor: Vaibhav Vaibhav