FacetGrid en Seaborn

Manav Narula 16 julio 2021
FacetGrid en Seaborn

El módulo seaborn se utiliza para la visualización y la creación de hermosos gráficos estadísticos en Python. Se basa y utiliza la biblioteca matlplotlib. A veces, es posible que nos encontremos con una situación en la que se muestren varios gráficos a la vez, lo que brindará una mayor claridad en la comprensión del conjunto de datos. Para tales situaciones, podemos usar la clase FacetGrid del módulo seaborn.

Este tutorial presentará cómo usar la clase FacetGrid del módulo seaborn en Python.

La clase FacetGrid se utiliza para visualizar la relación entre la distribución de datos con otros subconjuntos de datos mediante la creación de cuadrículas para múltiples gráficos. Traza el conjunto de datos en la cuadrícula especificando el eje de fila y columna. Es útil cuando trabajamos con un conjunto de datos complicado.

Diferentes parcelas nacidas en el mar como relplot(), lmplot() y catplot() usan esta clase por defecto.

Usamos el constructor seaborn.FacetGrid() para iniciar un objeto de esta clase. Consulte el siguiente código.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
        "Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
        "Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
        "Product": [
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
        ],
    }
)

g = sns.FacetGrid(df, col="Product", row="Day")
g.map(sns.lineplot, "Price", "Quantity")

FacetGrid nacida en el mar

En el ejemplo anterior, graficamos el precio de los diferentes productos en diferentes cantidades durante dos días. Creamos una cuadrícula usando el constructor seaborn.FacetGrid() y la inicializamos con el valor para filas y columnas. Especificamos la gráfica deseada y las variables que se trazarán usando la función map(). Usamos un conjunto de datos relativamente simple y pudimos lograr el resultado deseado. Además, podemos usar un tercer eje llamado tono en esta clase. Esto traza los datos con diferentes categorías en el mismo gráfico en diferentes colores.

Modificamos el código en el ejemplo mencionado anteriormente y agregamos el parámetro hue. Por ejemplo,

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
        "Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
        "Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
        "Product": [
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
            "A",
            "A",
            "A",
            "A",
            "B",
            "B",
            "B",
            "B",
        ],
    }
)

g = sns.FacetGrid(df, col="Product", hue="Day")
g.map(sns.lineplot, "Price", "Quantity")
g.add_legend()

seaborn FacetGrid con el parámetro de tono

Observe que el número total de gráficos también se redujo mediante el uso del parámetro hue. La función add_legend() se usa para agregar una leyenda en la figura final.

Podemos modificar la figura final usando muchos parámetros y funciones con esta clase. Por ejemplo, los parámetros height y aspect se pueden utilizar para modificar el tamaño de la figura final, la función set_titles() se puede utilizar para añadir un título para trazar en cada eje, función set_xlabels() para alterar las etiquetas de los ejes y más.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn