labels=np.array(['衬衫','毛衣','领带','裤子','风衣','高跟鞋','袜子']) y_A=np.array([120,56,28,98,129,28,107]) y_B=np.array([60,140,153,145,160,70,54])在numpy中创建一个柱形图并在每个矩形条的上方附加一个文本标签,以显示其高度
时间: 2023-12-16 08:03:13 浏览: 119
可以使用Matplotlib库来创建柱形图并在每个矩形条的上方添加文本标签。以下是实现代码:
```python
import matplotlib.pyplot as plt
import numpy as np
labels = np.array(['衬衫','毛衣','领带','裤子','风衣','高跟鞋','袜子'])
y_A = np.array([120,56,28,98,129,28,107])
y_B = np.array([60,140,153,145,160,70,54])
# 创建柱形图
x = np.arange(len(labels))
width = 0.35
fig, ax = plt.subplots()
rects1 = ax.bar(x - width/2, y_A, width, label='A')
rects2 = ax.bar(x + width/2, y_B, width, label='B')
# 在每个矩形条的上方添加文本标签
def autolabel(rects):
"""Attach a text label above each bar in *rects*, displaying its height."""
for rect in rects:
height = rect.get_height()
ax.annotate('{}'.format(height),
xy=(rect.get_x() + rect.get_width() / 2, height),
xytext=(0, 3), # 3 points vertical offset
textcoords="offset points",
ha='center', va='bottom')
autolabel(rects1)
autolabel(rects2)
# 设置图形属性
ax.set_ylabel('数量')
ax.set_title('商品销量')
ax.set_xticks(x)
ax.set_xticklabels(labels)
ax.legend()
# 显示图形
plt.show()
```
运行代码后,将会得到一个柱形图,其中每个矩形条的上方都标有相应的高度值。可以根据需要修改柱形图的属性,如标题、坐标轴标签等。
阅读全文