matplotlib饼状图带线链接怎么画
时间: 2023-07-12 18:09:04 浏览: 100
要画带线链接的饼状图,可以使用matplotlib库中的pie函数和annotate函数。以下是一个简单的例子:
```python
import matplotlib.pyplot as plt
# 声明数据
labels = ['A', 'B', 'C', 'D']
sizes = [20, 30, 15, 35]
# 画饼状图
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%1.1f%%')
# 添加线和文字
for i, label in enumerate(labels):
angle = (sum(sizes[:i]) + sizes[i]/2) * 360 / sum(sizes)
x = 1.3 * plt.cos(angle * np.pi / 180)
y = 1.3 * plt.sin(angle * np.pi / 180)
if x > 0:
ax.annotate(label, (x, y), (1.5*x, 1.5*y), xycoords='data', ha='left', va='center')
else:
ax.annotate(label, (x, y), (-1.5*x, -1.5*y), xycoords='data', ha='right', va='center')
ax.annotate('{:.1f}%'.format(sizes[i]), (x, y), (x+0.3, y), xycoords='data', color='white', ha='center', va='center', fontsize=10, fontweight='bold', bbox=dict(boxstyle='round', fc='C0', ec='C0'))
plt.show()
```
在这个例子中,我们使用了pie函数画出了一个简单的饼状图,并使用annotate函数添加了线和文字。具体来说,我们计算出每个扇形的中心角度,然后计算出对应位置的坐标,最后使用annotate函数添加线和文字。其中,第一个参数是要添加的文字,第二个参数是要添加的坐标,第三个参数是文字末端所在的坐标。我们还可以设置文字的颜色、对齐方式、字体大小、字体粗细等属性,以及添加一个圆角矩形的背景。
阅读全文