如何在 matplotlib 中创建相对频率直方图
相对频率直方图是显示数据集中值的相对频率的图表。
您可以使用以下语法在 Python 中的 Matplotlib 中创建相对频率直方图:
import matplotlib. pyplot as plt import numpy as np #define plotting area fig = plt. figure () ax = fig. add_subplot (111) #create relative frequency histogram ax. hist (data, edgecolor=' black ', weights=np. ones_like (data) / len (data))
以下示例展示了如何在实践中使用此语法。
示例:在 Matplotlib 中创建相对频率直方图
以下代码展示了如何在 Matplotlib 中创建规则频率直方图:
import numpy as np
import matplotlib. pyplot as plt
#define data values
data = [8, 8, 9, 12, 13, 13, 14, 14, 15, 18, 22, 23, 24, 25, 30]
#create frequency histogram
fig = plt. figure ()
ax = fig. add_subplot (111)
ax. hist (data, edgecolor=' black ')
x 轴显示数据值的 bin,y 轴显示每个 bin 的频率。
我们可以使用以下代码在 y 轴上显示相对频率:
import numpy as np
import matplotlib. pyplot as plt
#define data values
data = [8, 8, 9, 12, 13, 13, 14, 14, 15, 18, 22, 23, 24, 25, 30]
#create relative frequency histogram
fig = plt. figure ()
ax = fig. add_subplot (111)
ax. hist (data, edgecolor=' black ', weights=np. ones_like (data) / len (data))
y 轴现在显示相对频率。
例如,数据集中共有 15 个值。
因此,y 轴现在显示 4/15 = 0.2667 ,而不是在图表中最高条形的 y 轴上显示频率4 。
我们还可以使用 Matplotlib 的PercentFormatter()函数将 y 轴上的值显示为百分比:
import numpy as np
import matplotlib. pyplot as plt
from matplotlib. ticker import PercentFormatter
#define data values
data = [8, 8, 9, 12, 13, 13, 14, 14, 15, 18, 22, 23, 24, 25, 30]
#create relative frequency histogram with percentages on y-axis
fig = plt. figure ()
ax = fig. add_subplot (111)
ax. hist (data, edgecolor=' black ', weights=np. ones_like (data)* 100 / len (data))
ax. yaxis . set_major_formatter (PercentFormatter())
请注意,y 轴现在将相对频率显示为百分比。
其他资源
以下教程解释了如何在 Matplotlib 中创建其他常见图形:
如何更改 Matplotlib 直方图的颜色
如何调整 Matplotlib 直方图中的 bin 大小
如何从 Pandas DataFrame 创建直方图