matplotlib 直方图:如何显示条形上的计数

python

1个回答

写回答

18032861623

2025-07-10 03:18

+ 关注

Python
Python

如何在 matplotlib 直方图中显示条形的计数

在数据可视化中,直方图是一种常用的图表类型,用于展示数据的分布情况。而在 matplotlib 中,我们可以通过使用 hist() 函数来绘制直方图。然而,默认情况下,matplotlib 的直方图只显示了条形的高度,而没有显示每个条形对应的计数。那么,我们应该如何在 matplotlib 直方图中显示条形的计数呢?

一种常见的方法是通过在每个条形上添加文本标签来显示计数。在 matplotlib 中,我们可以使用 annotate() 函数来实现这个功能。具体而言,我们需要遍历每个条形,然后将对应的计数添加为文本标签,最后将这些文本标签添加到图表上。

下面是一个示例代码,展示了如何在 matplotlib 直方图中显示条形的计数:

Python

import matplotlib.pyplot as plt

# 生成一组随机数据

data = [1, 3, 2, 2, 4, 3, 1, 2, 3, 4, 1, 3, 2, 2, 4, 3, 1, 2, 3, 4]

# 绘制直方图

plt.hist(data, bins=4, edgecolor='black')

# 获取每个条形的计数

counts, bins, patches = plt.hist(data, bins=4, edgecolor='black')

# 遍历每个条形,并添加计数标签

for count, patch in zip(counts, patches):

x = patch.get_x() + patch.get_width() / 2

y = patch.get_height()

plt.annotate(str(int(count)), (x, y), ha='center', va='bottom')

# 显示图表

plt.show()

通过运行上述代码,我们可以得到一个带有条形计数的直方图。每个条形上方都显示了对应的计数值。

示例代码运行结果分析

在上面的示例代码中,我们首先生成了一组随机数据,然后使用 hist() 函数绘制了一个直方图。为了更好地显示每个条形的计数,我们调用了两次 hist() 函数,第一次用于绘制直方图,第二次用于获取每个条形的计数。

接下来,我们使用 zip() 函数遍历了每个条形和对应的计数。对于每个条形,我们首先计算出文本标签的位置 (x, y),其中 x 的值为条形的横坐标加上条形宽度的一半,y 的值为条形的高度。然后,我们使用 annotate() 函数将计数值添加为文本标签,并指定了文本标签的水平对齐方式为居中,垂直对齐方式为底部。

最后,我们调用 show() 函数显示了带有条形计数的直方图。

在本文中,我们介绍了如何在 matplotlib 直方图中显示条形的计数。具体而言,我们通过使用 annotate() 函数,在每个条形上添加了对应的计数文本标签。这样,我们就可以更清楚地了解每个条形所代表的数量。希望本文对你理解和使用 matplotlib 直方图有所帮助!

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号