如何在 pandas 直方图的 y 轴上显示百分比


您可以使用以下基本语法在 pandas 直方图的 y 轴上显示百分比:

 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 ()

以下示例展示了如何在实践中使用此语法。

示例:在 Pandas 直方图的 Y 轴上显示百分比

假设我们有以下 pandas DataFrame,其中包含有关各种篮球运动员的信息:

 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

如果我们创建一个直方图来可视化点列中值的分布,则 y 轴将默认显示计数:

 import matplotlib. pyplot as plt 

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

要在 y 轴上显示百分比,我们可以使用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 () 

pandas 直方图,y 轴上有百分比

请注意,Y 轴现在显示百分比。

如果要从百分比中删除小数位,只需在PercentFormatter()函数中使用小数=0参数即可:

 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 () 

Pandas 直方图删除 y 轴上的百分比小数

Y 轴现在显示百分比,不带任何小数位。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

如何更改 Pandas 直方图中使用的 bin 数量
如何更改Pandas直方图中X轴的范围
如何在 Pandas 中按组绘制直方图

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注