0. 概述
饼图会出现在很多需要呈现各部分在整体中比重的场合,而且会有一系列的变种,这里把常见的一些饼图及绘制方式整理一下。
当然这里不可能覆盖所有的场景,不过通过对一些参数的演示和讲解,相信大家也可以绘制出符合自己需求的饼图。
1. 基本绘制方法
使用Matplotlib的pie方法可以很方便的绘制饼图,其底层的实现应该是使用到了matplotlib.patches下的Wedge对象。
一个命令就可以调用该函数,然后绘制图形,以下几行的代码就可以绘制并显示一个饼图:
fig,ax=plt.subplots()
values=rd.randint(20,60,5) #五个介于20到60之间的随机数
ax.pie(values)
plt.show()
运行效果如下:

2. 其他元素
当然,上面的例子还缺少不少元素,例如每一部分所代表的含义,以及百分比分别代表的是什么并不清晰,可以在pie中添加一些参数,例如:
import numpy as np
import matplotlib.pyplot as plt
import numpy.random as rd
from matplotlib import cm
fig,ax=plt.subplots()
values=rd.randint(20,60,5) #五个介于20到60之间的随机数
labels=['A','B','C','D','E'] #标签
colors=cm.rainbow(np.linspace(0,1,len(values))) #颜色
#指定labels和colors参数,并设置autopct参数,以百分比形式显示饼图的值
ax.pie(values,labels=labels,colors=colors,autopct='%1.1f%%')
plt.show()
运行效果如下:

另外,可以通过指定labeldistance和pctdistance调节显示标签到圆心的相对距离。
3. 阴影和分离
通过shadow和explode参数还可以指定阴影和分离效果,以突出重点,例如:
import numpy as np
import matplotlib.pyplot as plt
import numpy.random as rd
from matplotlib import cm
fig,ax=plt.subplots()
values

1万+

被折叠的 条评论
为什么被折叠?



