Como criar um gráfico de barras empilhadas no pandas


Você pode usar a seguinte sintaxe básica para criar um gráfico de barras empilhadas no pandas:

 df. groupby ([' var1 ', ' var2 ']). size (). unstack (). plot (kind=' bar ', stacked= True )

O exemplo a seguir mostra como usar essa sintaxe na prática.

Exemplo: Crie um gráfico de barras empilhadas no Pandas

Suponha que temos o seguinte DataFrame do pandas que contém informações sobre vários jogadores de basquete:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'G', 'F', 'F', 'F'],
                   ' points ': [5, 7, 7, 9, 12, 9, 9, 4]})

#view DataFrame
print (df)

  team position points
0 AG 5
1 AG 7
2AF 7
3 AF 9
4 BG 12
5 BF 9
6 BF 9
7 BF 4

Podemos usar o código a seguir para criar um gráfico de barras empilhadas que exibe o número total de posições , agrupadas por equipe :

 df. groupby ([' team ', ' position ']). size (). unstack (). plot (kind=' bar ', stacked= True )

O eixo x mostra o nome da equipe e o eixo y mostra o número total de posições de cada equipe.

No tabuleiro podemos ver que o time A possui 2 guardas (G) e 2 atacantes (F) enquanto o time B possui 1 guarda e 3 atacantes.

Você também pode usar os argumentos color e title para modificar a cor das barras e adicionar um título ao gráfico:

 df. groupby ([' team ', ' position ']). size (). unstack (). plot (kind=' bar ', stacked= True ,
            color=[' steelblue ',' pink '], title=' Position Count by Team ')

gráfico de barras empilhadas em pandas

Um título foi adicionado ao topo do gráfico e as cores da barra foram alteradas para azul aço e rosa, conforme especificamos.

Recursos adicionais

Os tutoriais a seguir explicam como criar outros gráficos comuns em Python:

Como criar mapas de calor em Python
Como criar uma curva em forma de sino em Python
Como criar um gráfico Ogive em Python

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *