Python通过通过matplotlib画双层饼图及环形图简单示例画双层饼图及环形图简单示例
(1)
饼图(pie),即在一个圆圈内分成几块,显示不同数据系列的占比大小,这也是我们在日常数据的图形展示中最常用的图形
之一。
在python中常用matplotlib的pie来绘制,基本命令如下所示(python3.X版本):
vals = [1, 2, 3, 4]#创建数据系列
fig, ax = plt.subplots()#创建子图
labels = 'A', 'B', 'C', 'D'
colors = ['yellowgreen', 'gold', 'lightskyblue', 'lightcoral'] explode = (0, 0.1, 0, 0)
ax.pie(vals, explode=explode, labels=labels, colors=colors,
autopct='%1.1f%%', shadow=True, startangle=90,radius=1.2)
ax.set(aspect="equal", title='Pie plot with `ax.pie`')#设置标题以及图形的对称
plt.show()
上图是在对饼图的模块颜色、标签、百分比、标题、角度、圆形半径,以及某一块凸出(explode)进行设置后,最终呈现的
图形效果。大部分设置来自于pie()函数内,即:
pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6,
shadow=False, labeldistance=1.1, startangle=None, radius=None)
对于该函数内各参数的含义,网上资料比比皆是,在这里不再赘述,大家可以根据自己需求来多次尝试,设置美化图形。
(2)
目前matplotlib中尚无双层饼图绘制的专门介绍,但是,我们注意到pie()函数中有个饼图半径的设置——radius,于是,我
就想:可不可以在同一个figure下绘制两个不同的圆饼,形成嵌套饼图,从而制作出双层饼图?比如:
作图如下:
vals1 = [1, 2, 3, 4] vals2 = [2, 3, 4, 5] fig, ax = plt.subplots()
labels = 'A', 'B', 'C', 'D'
ax.pie(vals1, radius=1.2)
ax.pie(vals2, radius=1)
ax.set(aspect="equal", title='Pie plot with `ax.pie`')
plt.show()