上面示例代码中的显示柱状图数值没有在正上方
时间: 2024-03-01 18:51:24 浏览: 58
是的,您说得对,上面示例代码中的显示柱状图数值确实没有在正上方,这可能会影响数据的可读性。为了让数值显示在柱状图的正上方,需要对代码进行一些修改,具体实现方式如下:
```python
import matplotlib.pyplot as plt
import numpy as np
# 数据
labels = ['A', 'B', 'C', 'D', 'E']
data1 = [20, 35, 30, 35, 27]
data2 = [25, 32, 34, 20, 25]
# 设置柱状图宽度
bar_width = 0.3
# 计算偏移量
x_ticks = np.arange(len(labels))
offset = bar_width / 2
# 绘制柱状图
plt.bar(x_ticks - offset, data1, width=bar_width, label='Data 1')
plt.bar(x_ticks + offset, data2, width=bar_width, label='Data 2')
# 显示数值
for i in range(len(x_ticks)):
plt.text(x_ticks[i] - offset, data1[i] + 0.5, str(data1[i]), ha='center', va='bottom')
plt.text(x_ticks[i] + offset, data2[i] + 0.5, str(data2[i]), ha='center', va='bottom')
# 设置x轴标签
plt.xticks(x_ticks, labels)
# 设置图例
plt.legend()
# 显示图形
plt.show()
```
在这个修改后的代码中,我们将`plt.text`函数的第二个参数从`data1[i] + 1`和`data2[i] + 1`改为了`data1[i] + 0.5`和`data2[i] + 0.5`,这样就可以将数值显示在柱状图的正上方了。另外,我们还添加了`ha='center'`和`va='bottom'`参数,这可以使得数值在水平和垂直方向上都居中显示,更加美观。
阅读全文