¿Cómo agregar texto de alineación central en cada gráfico de subparcela en Seaborn?

En este artículo, vamos a ver cómo agregar texto en el centro sobre cada subparcela usando Seaborn. Centrar un título es una excelente manera de representar la variabilidad en sus datos. Se puede aplicar a gráficos para proporcionar una capa adicional de información sobre los datos presentados. 

Funciones utilizadas:

FacetGrid : es una forma general de trazar una cuadrícula basada en una función. Nos ayuda a visualizar la distribución de variables, así como la relación entre múltiples variables. El objeto FacetGrid usa el marco de datos como Entrada y los nombres de las variables que dan forma a la columna, fila, dimensiones de la grilla, la sintaxis se da a continuación:

Sintaxis: seaborn.FacetGrid(datos, \*\*kwargs)

  • datos: marco de datos ordenado donde cada columna es una variable y cada fila es una observación.
  • \*\*kwargs: utiliza muchos argumentos como entrada, como fila, columna, tono, paleta, etc.

Método Map: El método map() se usa ampliamente para aplicar una función u operación en una secuencia de datos. Aplica una función en todos los elementos de un iterador dado como entrada después de aplicar una función específica a todos los elementos de iterable y return

Sintaxis: map(función, iterable)

Parámetro:

  • función Requerido: La función a ejecutar para cada elemento
  • iterable Obligatorio: una colección de filas y columnas, secuencias o un objeto iterador.

Método de texto: esta función se usa para agregar texto a los ejes en la ubicación x, y en las coordenadas de datos.

Sintaxis: texto (x, y, texto, tamaño de fuente = int)

  • x, y: La posición para colocar el texto.
  • texto: “tu texto”.
  • fontsize: tamaño del texto en forma de número entero.

A continuación se muestra la implementación del método anterior:

Ejemplo 1: aquí estamos trazando un gráfico de registro llamando a sns.regplot. Este método se usa para trazar datos y un modelo de regresión lineal.
Aquí tenemos un gráfico en el que hemos agregado una anotación en la parte interior del gráfico en un área determinada donde estamos agregando nuestro texto en las posiciones x=10 e y=120 con tamaño de fuente=12. Por favor, encuentre mi código a continuación:

Python3

# Import Library
import seaborn as sns
 
# style must be one of white, dark,
# whitegrid, darkgrid (Optional)
sns.set_style("darkgrid") 
 
# Loading default data of seaborn
exercise = sns.load_dataset("exercise")
g = sns.FacetGrid(exercise, row="diet",
                  col="time", margin_titles = True)
 
g.map(sns.regplot, "id", "pulse", color = ".3")
 
# Set Title for each subplot
col_order=['Deltaic', 'Plains','Hummock',
           'Swale', 'Sand Dunes', 'Mountain']
 
# embedding center-text with its title
# using loop.
for txt, title in zip(g.axes.flat, col_order):
    txt.set_title(title)   
     
    # add text
    txt.text(10, 120,'Geeksforgeeks', fontsize = 12)

Producción:

Ejemplo 2: En este ejemplo, estamos trazando kdeplot llamando a sns.kdeplot, que representa la distribución de probabilidad de los valores de los datos como el área bajo la curva trazada. Aquí tenemos un gráfico en el que hemos agregado una anotación en la parte interna del gráfico en un área determinada, aquí estamos agregando nuestro texto en las posiciones x=10,58 y y=0,04 con tamaño de fuente=11. Por favor, encuentre mi código a continuación:

Python3

# import Library
import seaborn as sns
import pandas as pd
 
# style must be one of white, dark,
# whitegrid, darkgrid (Optional)
sns.set_style("darkgrid")
 
# Loading default data of seaborn
exercise = sns.load_dataset("exercise")
exercise_kind = exercise.kind.value_counts().index
 
g = sns.FacetGrid(exercise, row="kind",
                  row_order=exercise_kind,
                  height=1.7, aspect=4,)
g.map(sns.kdeplot, "id")
   
# Set Title
col_order=['Deltaic Plains','Hummock and Swale',
           'Sand Dunes']
 
# embedding center-text with its title
# at each iteration
for txt, title in zip(g.axes.flat, col_order):
    txt.set_title(title)
     
    # add text
    txt.text(10.58, 0.04,'Geeksforgeeks', fontsize = 11)

Producción:

Ejemplo 3: en este ejemplo, estamos trazando un diagrama de líneas, sns.lineplot son gráficos que normalmente se usan para identificar tendencias durante un período de tiempo. Aquí tenemos un gráfico en el que hemos agregado una anotación en la parte interior del gráfico en un área determinada. Aquí estamos agregando nuestro texto en las posiciones x=15 e y=6 con tamaño de fuente=12. Por favor, encuentre mi código a continuación:

Python3

# Import Library
import seaborn as sns
import pandas as pd
 
# style must be one of white,
# dark, whitegrid, darkgrid
sns.set_style("darkgrid") 
 
# Loading default data of seaborn
tips = sns.load_dataset("tips")
g = sns.FacetGrid(tips, row = "sex",
                  col = "smoker",
                  margin_titles = True)
g.map(sns.lineplot, "total_bill", 'tip')
 
# Set Title for each subplot
col_order = ['Deltaic Plains','Hummock and Swale',
             'Sand Dunes', 'Mountain']
 
# embedding center-text with its
# title at each iteration
for txt, title in zip(g.axes.flat, col_order):
    txt.set_title(title)   
     
    # add text
    txt.text(15, 6,'Geeksforgeeks', fontsize = 12)

Producción:

Ejemplo 4: En este ejemplo, trazaremos Barplot llamando a sns.barplot. Es una visualización de variables de conjuntos de datos numéricos y categóricos x e y en un gráfico para encontrar la relación entre ellos. Aquí agregamos nuestro texto en las posiciones x= -0.2 e y=60 con fontsize=12. Por favor, encuentre mi código a continuación:

Python3

# import Library
import seaborn as sns
import pandas as pd
 
# style must be one of white, dark,
# whitegrid, darkgrid
sns.set_style("darkgrid")
 
# Loading default data of seaborn
exercise = sns.load_dataset("exercise")
g = sns.FacetGrid(exercise, col="time",
                  height=4, aspect=.5)
 
g.map(sns.barplot, "diet", "pulse",
      order=["no fat", "low fat"])
    
# Set Title for each subplot
col_order=['Deltaic Plains','Hummock and Swale',
           'Sand Dunes']
 
# embedding center-text with its title
# at each iteration
for txt, title in zip(g.axes.flat, col_order):
    txt.set_title(title)
     
    # add text
    txt.text(-0.2, 60,'Geeksforgeeks', fontsize = 12)

Producción:

Publicación traducida automáticamente

Artículo escrito por skrg141 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *