python圆环图添解释说名的线和示例图代码
时间: 2023-11-27 17:53:09 浏览: 54
python发送邮件的实例代码(支持html、图片、附件)
圆环图可以用来展示不同子类别的占比关系,下面是一个带有解释说明的圆环图示例代码:
```python
import matplotlib.pyplot as plt
# 数据
sizes = [30, 20, 15, 10, 5] # 每个子类别占比
labels = ['A', 'B', 'C', 'D', 'E'] # 每个子类别的名称
colors = ['red', 'orange', 'yellow', 'green', 'blue'] # 每个子类别的颜色
# 绘图
fig, ax = plt.subplots()
ax.axis('equal') # 设置横纵比相等,使图形画出来是圆形而不是椭圆形
wedges, texts, autotexts = ax.pie(sizes, colors=colors, labels=labels, autopct='%1.1f%%', startangle=90)
# 添加解释说明的线
for i, wedge in enumerate(wedges):
# 计算线的起始和终止坐标
ang = (wedge.theta2 - wedge.theta1)/2. + wedge.theta1
y = wedge.r * 1.2 * np.sin(np.deg2rad(ang))
x = wedge.r * 1.2 * np.cos(np.deg2rad(ang))
# 添加线
ax.annotate(labels[i], xy=(x, y), xytext=(1.4*np.sign(x), 1.4*y),
textcoords='offset points', ha='center', va='center',
arrowprops=dict(arrowstyle='-', color='black'))
# 添加标题
plt.title('圆环图示例')
plt.show()
```
解释说明的线的实现是通过计算每个子类别扇形中心角度的一半,然后根据正弦余弦函数计算出线的起始和终止坐标,在使用 `annotate()` 函数添加线和文字。其中 `xy` 参数指的是线的终止坐标,`xytext` 参数指的是文字的坐标,`textcoords` 参数指的是文字坐标的类型,这里是相对于终止坐标的偏移量。`arrowprops` 参数可以用来设置箭头的样式和颜色等。
阅读全文