如何在 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())

Matplotlib 相对频率直方图

请注意,y 轴现在将相对频率显示为百分比。

其他资源

以下教程解释了如何在 Matplotlib 中创建其他常见图形:

如何更改 Matplotlib 直方图的颜色
如何调整 Matplotlib 直方图中的 bin 大小
如何从 Pandas DataFrame 创建直方图

添加评论

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