matplotlib hist 显示数值
时间: 2023-07-12 13:18:56 浏览: 59
要在 Matplotlib 的 hist 图中显示数值,可以使用 `plt.hist()` 函数的 `text()` 方法,将数值添加到每个条形图的顶部或底部。以下是一个例子:
```
import matplotlib.pyplot as plt
import numpy as np
# 生成一些数据
data = np.random.randn(1000)
# 绘制直方图
n, bins, patches = plt.hist(data, bins=20)
# 在每个条形图的顶部添加数值标签
for i in range(len(patches)):
plt.text(x=bins[i]+0.1, y=n[i]+5, s=int(n[i]))
# 显示图像
plt.show()
```
在上面的代码中,我们首先生成一些随机数据,然后使用 `plt.hist()` 函数绘制直方图。`plt.hist()` 函数返回三个值:每个条形图的数量、条形图的边界和条形图的句柄。我们使用 `for` 循环遍历每个条形图的句柄,并在每个条形图的顶部添加一个数值标签。 `x` 和 `y` 参数分别指定标签的水平和垂直位置,`s` 参数指定要显示的数值。在本例中,我们使用 `int()` 函数将每个数值转换为整数。
最后,我们使用 `plt.show()` 函数显示图像。这将显示一个带有数值标签的直方图。
相关问题
matplotlib bar和hist区别
matplotlib中的bar和hist都用于绘制图表,但它们的作用不同。
1. bar是用于绘制柱形图,通常用于展示不同分类的数据之间的比较关系,例如不同地区的销售额、不同产品的市场份额等。每个柱子的高度表示的是该分类的数值,柱子的宽度可以调整,可以控制柱子之间的间距和组之间的间距。
2. hist是用于绘制直方图,通常用于展示数据的分布情况,例如人口年龄分布、温度变化分布等。直方图将数据划分成一定范围的区间,统计每个区间内数据的数量或频率,然后用柱形图表示出来。每个柱子的高度表示的是该区间内数据的数量或频率,柱子的宽度是固定的,可以控制柱子之间的间距。
因此,bar和hist的使用场景和目的不同,需要根据实际需求选择合适的函数。
Matplotlib直方图在每个柱子上标明数值
要在Matplotlib直方图上标明每个柱子的数值,可以使用plt.text()函数。以下是一个基本的示例代码:
``` python
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
data = np.random.randn(1000)
# 绘制直方图
plt.hist(data, bins=30)
# 在每个柱子上标明数值
for i in range(len(plt.hist(data, bins=30)[0])):
plt.text(plt.hist(data, bins=30)[1][i], plt.hist(data, bins=30)[0][i], str(plt.hist(data, bins=30)[0][i]))
# 显示图像
plt.show()
```
这个代码将生成一个包含1000个随机数据的直方图,并在每个柱子上标明数值。在for循环中,我们使用plt.hist()函数来获取直方图的值和边界,然后使用plt.text()函数在每个柱子上标记相应的值。