Seaborn - Facet Grid

Uma abordagem útil para explorar dados de dimensão média é desenhar várias instâncias do mesmo gráfico em diferentes subconjuntos de seu conjunto de dados.

Essa técnica é comumente chamada de “plotagem em rede”, ou “treliça”, e está relacionada à ideia de “pequenos múltiplos”.

Para usar esses recursos, seus dados devem estar em um DataFrame do Pandas.

Plotando pequenos múltiplos de subconjuntos de dados

No capítulo anterior, vimos o exemplo FacetGrid em que a classe FacetGrid ajuda a visualizar a distribuição de uma variável, bem como o relacionamento entre várias variáveis ​​separadamente dentro de subconjuntos de seu conjunto de dados usando vários painéis.

Um FacetGrid pode ser desenhado com até três dimensões - linha, coluna e matiz. Os dois primeiros têm correspondência óbvia com a matriz de eixos resultante; pense na variável de matiz como uma terceira dimensão ao longo de um eixo de profundidade, onde diferentes níveis são plotados com cores diferentes.

FacetGrid O objeto recebe um dataframe como entrada e os nomes das variáveis ​​que formarão as dimensões de linha, coluna ou matiz da grade.

As variáveis ​​devem ser categóricas e os dados em cada nível da variável serão usados ​​para uma faceta ao longo desse eixo.

Exemplo

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "time")
plt.show()

Resultado

No exemplo acima, acabamos de inicializar o facetgrid objeto que não desenha nada sobre eles.

A abordagem principal para visualizar dados nesta grade é com o FacetGrid.map()método. Vejamos a distribuição de dicas em cada um desses subconjuntos, usando um histograma.

Exemplo

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "time")
g.map(plt.hist, "tip")
plt.show()

Resultado

O número de plotagens é maior que um por causa do parâmetro col. Discutimos sobre o parâmetro col em nossos capítulos anteriores.

Para fazer um gráfico relacional, passe os nomes de várias variáveis.

Exemplo

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
g = sb.FacetGrid(df, col = "sex", hue = "smoker")
g.map(plt.scatter, "total_bill", "tip")
plt.show()

Resultado