Gráfico de Pares
Pair plot é utilizado para exibir relações pareadas entre variáveis numéricas em um conjunto de dados. É bastante semelhante ao joint plot, porém não se limita a apenas duas variáveis. Na verdade, um pair plot cria uma grade NxN
de objetos Axes
(múltiplos subplots), onde N
é o número de variáveis numéricas (colunas numéricas em um DataFrame
).
Descrição do Pair Plot
Em um pair plot, cada coluna compartilha a mesma variável do eixo x, e cada linha compartilha a mesma variável do eixo y. A diagonal exibe histogramas das variáveis individuais, enquanto os demais gráficos apresentam scatter plots.
Criação de um Pair Plot
A criação de um pair plot com o seaborn
consiste em chamar a função pairplot()
. Seu parâmetro mais importante e o único obrigatório é data
, que deve ser um objeto DataFrame
.
import seaborn as sns import matplotlib.pyplot as plt # Loading the dataset with data about three different iris species iris_df = sns.load_dataset('iris') # Creating a pair plot sns.pairplot(iris_df, height=2, aspect=0.8) plt.show()
O DataFrame iris_df
é passado para a função pairplot()
. Os parâmetros height
e aspect
definem a altura e a largura (calculada como altura multiplicada por aspect) de cada faceta em polegadas.
Hue
Outro parâmetro que merece destaque é o hue
, que especifica a variável (nome da coluna) em data
para mapear aspectos do gráfico para cores diferentes ou até criar gráficos separados (em um mesmo Axes
) para cada um de seus valores.
import seaborn as sns import matplotlib.pyplot as plt # Ignoring warnings import warnings warnings.filterwarnings('ignore') # Loading the dataset with data about three different iris species iris_df = sns.load_dataset('iris') # Setting the hue parameter to 'species' sns.pairplot(iris_df, hue='species', height=2, aspect=0.8) plt.show()
É possível observar claramente a diferença aqui. Os pontos de dados em cada gráfico de dispersão são coloridos de acordo com a espécie à qual pertencem, utilizando os valores da coluna species. Os gráficos diagonais agora são KDE plots para cada espécie, em vez de histogramas.
Em problemas de classificação, geralmente faz sentido criar um pair plot com o parâmetro hue
definido para a variável alvo, que é a variável categórica que se deseja prever.
A diferença é evidente. Os pontos de dados em cada gráfico de dispersão são coloridos conforme sua espécie, com base nos valores da coluna species. Os gráficos diagonais foram substituídos por KDE plots para cada espécie, em vez de histogramas.
Em tarefas de classificação, criar um pair plot com o parâmetro hue
definido para a variável alvo — a variável categórica a ser prevista — costuma ser útil.
Alterando Tipos de Gráficos
É possível alterar o tipo de gráficos utilizados em vez dos gráficos de dispersão padrão, assim como os gráficos exibidos na diagonal. O parâmetro kind
controla os gráficos principais e, por padrão, utiliza gráficos de dispersão, enquanto o parâmetro diag_kind
controla os gráficos diagonais e é escolhido automaticamente dependendo se o parâmetro hue
está definido.
import seaborn as sns import matplotlib.pyplot as plt # Loading the dataset with data about three different iris species iris_df = sns.load_dataset('iris') # Setting the kind parameter and diag_kind parameters sns.pairplot(iris_df, hue='species', kind='reg', diag_kind=None, height=2, aspect=0.8) plt.show()
'scatter'
, 'kde'
, 'hist'
, 'reg'
são valores possíveis para o parâmetro kind
.
diag_kind
pode ser definido como um dos seguintes valores:
'auto'
;'hist'
;'kde'
;None
.
Tudo é semelhante à função jointplot()
nesse aspecto.
Explore mais na pairplot()
documentação.
Swipe to start coding
- Utilize a função correta para criar um pair plot.
- Defina os dados do gráfico como
penguins_df
por meio do primeiro argumento. - Defina
'sex'
como a coluna que irá mapear os aspectos do gráfico para diferentes cores, especificando o segundo argumento. - Configure os gráficos não diagonais para exibirem uma linha de regressão (
'reg'
) ao especificar o terceiro argumento. - Defina
height
como2
. - Defina
aspect
como0.8
.
Solução
Obrigado pelo seu feedback!