|
|
# 4.1.5:饼图
|
|
|
|
|
|
## 饼图
|
|
|
饼图又称圆饼图、圆形图等,它是利用圆形及圆内扇形面积来表示数值大小的图形。饼图主要用于总体中各组成部分所占比重的研究。
|
|
|
|
|
|
|
|
|
## 绘制饼图
|
|
|
`matplotlib`用来绘制饼图的函数是`pie()`。常用参数如下:
|
|
|
|
|
|
|参数 |作用 |
|
|
|
| :------------: | :------------: |
|
|
|
| x |(每一块的比例,如果sum(x) > 1会使用sum(x)归一化|
|
|
|
|labels | 饼图外侧显示的说明文字 |
|
|
|
|explode |(每一块)离开中心距离|
|
|
|
|startangle |起始绘制角度,默认图是从x轴正方向逆时针画起,如设定=90则从y轴正方向画起|
|
|
|
|shadow |在饼图下面画一个阴影。默认值:False,即不画阴影|
|
|
|
|autopct |控制饼图内百分比设置|
|
|
|
|radius |控制饼图半径,默认值为1|
|
|
|
|wedgeprops|字典类型,可选参数,默认值:None。参数字典传递给wedge对象用来画一个饼图。|
|
|
|
```python
|
|
|
|
|
|
labels = 'A','B','C','D'
|
|
|
sizes = [10,20,10,60]
|
|
|
plt.pie(sizes,labels=labels,explode = (0,0.1,0,0),autopct='%1.1f')
|
|
|
|
|
|
plt.show()
|
|
|
```
|
|
|
|
|
|

|
|
|
|
|
|
## 嵌套饼图
|
|
|
嵌套饼图通常被称为空心饼图图表。空心饼图形状的效果是通过`wedgeprops`参数设置馅饼楔形的宽度来实现的:
|
|
|
```python
|
|
|
fig, ax = plt.subplots()
|
|
|
|
|
|
size = 0.3
|
|
|
vals = np.array([[60., 32.], [37., 40.], [29., 10.]])
|
|
|
cmap = plt.get_cmap("tab20c")
|
|
|
outer_colors = cmap(np.arange(3)*4)
|
|
|
inner_colors = cmap(np.array([1, 2, 5, 6, 9, 10]))
|
|
|
|
|
|
ax.pie(vals.sum(axis=1), radius=1, colors=outer_colors,
|
|
|
wedgeprops=dict(width=size, edgecolor='w') )
|
|
|
|
|
|
ax.pie(vals.flatten(), radius=1-size, colors=inner_colors,
|
|
|
wedgeprops=dict(width=size, edgecolor='w'))
|
|
|
ax.set(aspect="equal" )
|
|
|
```
|
|
|
|
|
|

|
|
|
|