import numpy as np import matplotlib.pyplot as plt plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams["axes.unicode_minus"] = False x = np.arange(3) y1 = np.array([61.8, 42.8, 48.0]) y2 = np.array([32.9, 12.5, 13.3]) bar_width = 0.3 plt.bar(x, y1, width=bar_width, alpha=0.8, color='skyblue', label='获得offer比例') plt.bar(x + bar_width, y2, width=bar_width, alpha=0.8, color='pink', label='签约比例') plt.title('不同院校求职毕业生获得offer与签约比例') plt.xlabel('学历') plt.ylabel('签约率') plt.xticks(x + bar_width/2, ['双一流院校', '普通本科院校', '专科院校']) plt.legend(loc='upper right') plt.show()给这个图片添加数据标签
时间: 2023-11-25 22:06:30 浏览: 104
Matplotlib.pyplot 三维绘图的实现示例
可以使用 plt.text() 函数在每个柱状图上添加数据标签,代码如下:
```python
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
x = np.arange(3)
y1 = np.array([61.8, 42.8, 48.0])
y2 = np.array([32.9, 12.5, 13.3])
bar_width = 0.3
plt.bar(x, y1, width=bar_width, alpha=0.8, color='skyblue', label='获得offer比例')
plt.bar(x + bar_width, y2, width=bar_width, alpha=0.8, color='pink', label='签约比例')
plt.title('不同院校求职毕业生获得offer与签约比例')
plt.xlabel('学历')
plt.ylabel('签约率')
plt.xticks(x + bar_width/2, ['双一流院校', '普通本科院校', '专科院校'])
plt.legend(loc='upper right')
# 添加数据标签
for i, v in enumerate(y1):
plt.text(i - 0.1, v + 1, str(v) + '%', color='black', fontsize=12)
for i, v in enumerate(y2):
plt.text(i + bar_width - 0.1, v + 1, str(v) + '%', color='black', fontsize=12)
plt.show()
```
运行上述代码,就可以得到带有数据标签的柱状图了。
阅读全文