Como exibir a porcentagem no eixo y do histograma do pandas


Você pode usar a seguinte sintaxe básica para exibir porcentagens no eixo y de um histograma do pandas:

 import pandas as pd
import numpy as np
import matplotlib. pyplot as plt
from matplotlib. ticker import PercentFormatter

#create histogram, using percentages instead of counts
plt. hist (df[' my_column '], weights= np.ones ( len (df)) / len (df))

#apply percentage format to y-axis
plt. gca (). yaxis . set_major_formatter (PercentFormatter(1))
plt. show ()

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

Exemplo: Mostrar porcentagem no eixo Y do histograma do Pandas

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

 import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (1)

#createDataFrame
df = pd. DataFrame ({' points ': np. random . normal (loc=20, scale=2, size=300),
                   ' assists ': np. random . normal (loc=14, scale=3, size=300),
                   ' rebounds ': np. random . normal (loc=12, scale=1, size=300)})

#view head of DataFrame
print ( df.head ())

      points assists rebounds
0 23.248691 20.197350 10.927036
1 18.776487 9.586529 12.495159
2 18.943656 11.509484 11.047938
3 17.854063 11.358267 11.481854
4 21.730815 13.162707 10.538596

Se criarmos um histograma para visualizar a distribuição dos valores na coluna de pontos , o eixo y mostrará as contagens por padrão:

 import matplotlib. pyplot as plt 

#create histogram for points columb
plt. hist (df[' points '], edgecolor=' black ')

Em vez disso, para exibir porcentagens no eixo y, podemos usar a função PercentFormatter :

 import numpy as np
import matplotlib. pyplot as plt
from matplotlib. ticker import PercentFormatter

#create histogram, using percentages instead of counts
plt. hist (df[' points '], weights=np. ones ( len (df)) / len (df), edgecolor=' black ')

#apply percentage format to y-axis
plt. gca (). yaxis . set_major_formatter (PercentFormatter(1))
plt. show () 

histograma do pandas com porcentagem no eixo y

Observe que o eixo Y agora exibe porcentagens.

Se você deseja remover casas decimais de porcentagens, basta usar o argumento decimals=0 na função PercentFormatter() :

 import numpy as np
import matplotlib. pyplot as plt
from matplotlib. ticker import PercentFormatter

#create histogram, using percentages instead of counts
plt. hist (df[' points '], weights=np. ones ( len (df)) / len (df), edgecolor=' black ')

#apply percentage format to y-axis
plt. gca (). yaxis . set_major_formatter (PercentFormatter(1, decimals= 0 ))
plt. show () 

O histograma do Pandas remove a porcentagem decimal no eixo y

O eixo Y agora exibe porcentagens sem casas decimais.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em pandas:

Como alterar o número de caixas usadas no histograma do Pandas
Como alterar o intervalo do eixo X no histograma do Pandas
Como traçar histogramas por grupo no Pandas

Add a Comment

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