axvline
y vlines
Si quieres añadir una línea vertical a tu gráfico hecho con seaborn puedes utilizar la función axvline
y establecer dónde quieres que se muestre la línea vertical con el argumento x
. Los argumentos ymin
e ymax
van de 0 a 1 y representan el punto de inicio y final de la línea como porcentaje del tamaño del gráfico.
import numpy as np
import seaborn as sns
# Simulación de datos
x = np.random.RandomState(1).normal(0, 1, size = 50)
ax = sns.kdeplot(x = x, fill = True, color = "limegreen", alpha = 0.1)
ax.axvline(x = 2, # Línea en x = 2
ymin = 0, # Desde la parte inferior
ymax = 1) # hasta la superior
Si estableces otros valores a los argumentos ymin
e ymax
puedes crear un segmento. Recuerda que los valores que se pasan no representan los valores del eje Y.
import numpy as np
import seaborn as sns
# Simulación de datos
x = np.random.RandomState(1).normal(0, 1, size = 50)
ax = sns.kdeplot(x = x, fill = True, color = "limegreen", alpha = 0.1)
ax.axvline(x = 2, # Línea en x = 2
ymin = 0.2, # 20%
ymax = 0.8) # 80%
En caso de que quieras agregar varias líneas a la vez puedes utilizar la función vlines
. La principal ventaja de esta función es que puedes establecer valores máximos en función de los valores del eje Y. Ten en cuenta que también puedes crear una única línea con esta función.
import numpy as np
import seaborn as sns
# Simulación de datos
x = np.random.RandomState(1).normal(0, 1, size = 50)
ax = sns.kdeplot(x = x, fill = True, color = "limegreen", alpha = 0.1)
ax.vlines(x = [-2, 0, 2], # Línea en x = [-2, 0, 2]
ymin = 0, # Inicio de todas las líneas
ymax = [0.05, 0.4, 0.05]) # Final para cada línea
axhline
y hlines
De manera análoga, la función axhline
permite agregar líneas horizontales a gráficos hechos con seaborn, pero tendrás que establecer dónde con el argumento y
y los valores máximo y mínimo entre 0 y 1 con los argumentos xmin
y xmax
.
import numpy as np
import seaborn as sns
# Simulación de datos
x = np.random.RandomState(1).normal(0, 1, size = 50)
ax = sns.kdeplot(x = x, fill = True, color = "limegreen", alpha = 0.1)
ax.axhline(y = 0.2, # Línea en y = 0.2
xmin = 0.1, # 10%
xmax = 0.9) # 90%
En caso de que quieras agregar varias líneas horizontales a la vez o si prefieres especificar el valor mínimo y máximo de la línea en base a los valores del eje X puedes usar la función hlines
, tal y como se muestra a continuación.
import numpy as np
import seaborn as sns
# Simulación de datos
x = np.random.RandomState(1).normal(0, 1, size = 50)
ax = sns.kdeplot(x = x, fill = True, color = "limegreen", alpha = 0.1)
ax.hlines(y = [0.1, 0.2, 0.3], # Valores del eje Y
xmin = -2, # Desde x = -2
xmax = 2) # Hasta x = 2
La principal diferencia entre axvline
, axhline
y vlines
, hlines
es que las primeras funciones solo se pueden usar para agregar líneas una por una y los valores min y max deben ser entre 0 y 1, mientras que con las segundas puedes agregar varias líneas a la vez y especificar los puntos exactos donde quieres que se dibujen.
Las líneas se pueden personalizar de varias maneras. Dependiendo del tipo de función que estés utilizando los nombres o los argumentos son ligeramente diferentes, ya que el estilo y las líneas de los gráficos hechos con vlines
y hlines
se pueden personalizar con linestyles
y colors
, respectivamente, mientras que las funciones axhline
y axvline
proporcionan los argumentos linestyle
y color
.
import numpy as np
import seaborn as sns
# Simulación de datos
x = np.random.RandomState(1).normal(0, 1, size = 50)
ax = sns.kdeplot(x = x, fill = True, color = "limegreen", alpha = 0.1)
ax.vlines(x = [-2, 2], ymin = 0, ymax = 0.4,
linestyles = ["dashed", "solid"], colors = ["red", "blue"])
ax.axhline(y = 0.2, xmin = 0, xmax = 1,
color = "black", linestyle = "dashed")
También te puede interesar