matplotlib画嵌套饼状图
时间: 2023-07-12 10:04:25 浏览: 107
可以通过使用嵌套饼状图来展示数据的比例关系,下面是一个使用matplotlib画嵌套饼状图的示例代码:
```python
import matplotlib.pyplot as plt
# 数据
sizes_outer = [30, 20, 50]
sizes_inner = [10, 15, 5]
# 颜色
colors_outer = ['yellowgreen', 'gold', 'lightskyblue']
colors_inner = ['yellowgreen', 'gold', 'lightskyblue']
# 标签
labels_outer = ['A', 'B', 'C']
labels_inner = ['A1', 'A2', 'A3', 'B1', 'B2', 'C1', 'C2', 'C3', 'C4', 'C5']
# 绘图
fig, ax = plt.subplots()
ax.pie(sizes_outer, labels=labels_outer, colors=colors_outer, autopct='%1.1f%%', startangle=90)
ax.axis('equal')
circle = plt.Circle(xy=(0, 0), radius=0.6, facecolor='white')
plt.gcf().gca().add_artist(circle)
ax.pie(sizes_inner, colors=colors_inner, radius=0.6, startangle=90)
plt.legend(labels_inner, loc='upper left', bbox_to_anchor=(-0.1, 1.))
plt.show()
```
其中,`sizes_outer`和`sizes_inner`分别表示外层饼状图和内层饼状图的数据;`colors_outer`和`colors_inner`分别表示外层饼状图和内层饼状图的颜色;`labels_outer`和`labels_inner`分别表示外层饼状图和内层饼状图的标签。在绘制内层饼状图时,需要设置`radius`参数来控制内层饼状图的大小,并使用`Circle`对象来添加一个白色圆形作为内层饼状图的背景。最后,使用`legend`函数来添加标签说明。
阅读全文