Como plotar dados categóricos em pandas (com exemplos)
Existem três maneiras comuns de visualizar dados categóricos :
- Gráfico de barras
- Gráficos de caixa por grupo
- Parcelas de mosaico
Os exemplos a seguir mostram como criar cada um desses gráficos para um DataFrame do pandas em Python.
Exemplo 1: gráficos de barras
O código a seguir mostra como criar um gráfico de barras para visualizar a frequência de mudanças em um determinado DataFrame do pandas:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'D'],
' points ': [18, 22, 29, 25, 14, 11, 10, 15]})
#create bar plot to visualize frequency of each team
df[' team ']. value_counts (). plot (kind=' bar ', xlabel=' Team ', ylabel=' Count ', rot= 0 )
O eixo X mostra o nome de cada equipe e o eixo Y mostra a frequência de cada equipe no DataFrame.
Nota : O argumento rot=0 diz aos pandas para girar os rótulos do eixo x para que fiquem paralelos ao eixo x.
Exemplo 2: Boxplots por grupo
Boxplots agrupados são uma forma útil de visualizar uma variável numérica, agrupada por uma variável categórica.
Por exemplo, o código a seguir mostra como criar boxplots que mostram a distribuição dos pontos marcados, agrupados por equipe:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
' points ': [18, 22, 29, 25, 14, 11, 10, 15]})
#create boxplot of points, grouped by team
df. boxplot (column=[' points '], by=' team ', grid= False , color=' black ')
O eixo x exibe as equipes e o eixo y exibe a distribuição dos pontos marcados por cada equipe.
Exemplo 3: gráfico em mosaico
Um gráfico lado a lado é um tipo de gráfico que exibe as frequências de duas variáveis categóricas diferentes em um único gráfico.
Por exemplo, o código a seguir mostra como criar um gráfico em mosaico que mostra a frequência das variáveis categóricas “resultado” e “equipe” em um único gráfico:
import pandas as pd
from statsmodels. graphics . mosaicplot import mosaic
#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
' result ': ['W', 'L', 'L', 'W', 'W', 'L', 'L', 'W', 'W']})
#create mosaic plot
mosaic(df, [' team ', ' result ']);
O eixo x exibe as equipes e o eixo y exibe a frequência de resultados de cada equipe.
Recursos adicionais
Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:
Como usar Groupby e Plot no Pandas
Como traçar a distribuição dos valores das colunas no Pandas
Como ajustar o tamanho da figura de um gráfico de panda