ax1.text为圆环图添加数值和 引导线
时间: 2023-11-28 17:47:19 浏览: 84
在 matplotlib 中,可以使用 `ax.text()` 方法为图表添加文本注释。对于圆环图,可以在每个扇形的中心位置添加相应的数值,并使用引导线将其连接到相应的扇形边缘。
以下是一个简单的示例:
```python
import matplotlib.pyplot as plt
# 数据
sizes = [30, 40, 20, 10]
labels = ['A', 'B', 'C', 'D']
colors = ['red', 'blue', 'green', 'yellow']
# 创建子图
fig, ax = plt.subplots()
# 画圆环图
wedges, _, _ = ax.pie(sizes, colors=colors, autopct='%1.1f%%', startangle=90, counterclock=False, wedgeprops={'width': 0.4})
# 添加数值和引导线
for i, wedge in enumerate(wedges):
# 计算扇形中心的坐标
center = (wedge.center[0], wedge.center[1])
# 计算数值
value = sizes[i]
# 添加数值注释
ax.text(center[0], center[1], str(value), ha='center', va='center', fontweight='bold')
# 计算引导线的终点坐标
x, y = wedge.r * 1.1 * np.cos(np.pi / 2 - wedge.theta2), wedge.r * 1.1 * np.sin(np.pi / 2 - wedge.theta2)
# 添加引导线
ax.annotate(labels[i], xy=(center[0], center[1]), xytext=(center[0]+x, center[1]+y), ha='center', va='center', arrowprops=dict(arrowstyle='-', color='gray'))
# 设置标题
ax.set_title('Pie Chart with Values and Lines')
# 显示图表
plt.show()
```
这个示例将在圆环图的每个扇形中心位置添加相应的数值,并使用引导线将其连接到相应的扇形边缘。`ax.text()` 方法用于添加文本注释,`ax.annotate()` 方法用于添加带箭头的引导线。
阅读全文