FacetGrid em Seaborn
O módulo seaborn é usado para visualização e criação de belos gráficos estatísticos em Python. Ele é baseado e usa a biblioteca matlplotlib. Às vezes, podemos encontrar uma situação para exibir vários gráficos de uma vez, o que dará melhor clareza na compreensão do conjunto de dados. Para tais situações, podemos usar a classe FacetGrid
do módulo seaborn.
Este tutorial irá apresentar como usar a classe FacetGrid
do módulo seaborn em Python.
A classe FacetGrid
é usada para visualizar a relação entre a distribuição de dados com outros subconjuntos de dados, criando grades para vários gráficos. Ele plota o conjunto de dados na grade, especificando o eixo da linha e da coluna. É útil quando estamos trabalhando com um conjunto de dados complicado.
Diferentes plotagens de origem marinha como relplot()
, lmplot()
e catplot()
usam essa classe por padrão.
Usamos o construtor seaborn.FacetGrid()
para iniciar um objeto desta classe. Veja o seguinte 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")
No exemplo acima, traçamos o preço dos diferentes produtos em diferentes quantidades ao longo de dois dias. Criamos uma grade usando o construtor seaborn.FacetGrid()
e a inicializamos com o valor de linhas e colunas. Especificamos o gráfico e as variáveis desejadas a serem traçados usando a função map()
. Usamos um conjunto de dados relativamente simples e conseguimos alcançar o resultado desejado. Além disso, podemos usar um terceiro eixo denominado matiz nesta classe. Isso plota os dados com categorias diferentes no mesmo gráfico em cores diferentes.
Alteramos o código no exemplo mencionado anteriormente e adicionamos o parâmetro hue
. Por exemplo,
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()
Observe que o número total de plotagens também foi reduzido usando o parâmetro hue
. A função add_legend()
é usada para adicionar uma legenda na figura final.
Podemos ajustar a figura final usando muitos parâmetros e funções com esta classe. Por exemplo, os parâmetros height
e aspect
podem ser usados para alterar o tamanho da figura final, a função set_titles()
pode ser usada para adicionar um título para traçar em cada eixo, função set_xlabels()
para alterar os rótulos dos eixos e muito mais.
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