打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
matplotlib基础绘图命令之pie

在matplotlib中,pie方法用于绘制饼图,基本用法如下

plt.pie(x=[1, 2, 3, 4])

输出的结果如下

这样的饼图并没有任何实用价值,为了有效的展示信息,至少我们还需要显示数据的标签和百分比的数值。此时就需要调整参数,pie方法常用的参数有以下几个

1. labels, 设置饼图中每部分的标签

2. autopct, 设置百分比信息的字符串格式化方式,默认值为None,不显示百分比

3. shadow, 设置饼图的阴影,使得看上去有立体感,默认值为False

4. startangle, 饼图中第一个部分的起始角度,

5. radius, 饼图的半径,数值越大,饼图越大

6. counterclock, 设置饼图的方向,默认为True,表示逆时针方向,值为False时为顺时针方向

7. colors,调色盘,默认值为None, 会使用默认的调色盘,所以通常情况下,不需要设置该参数

8. explode, 该参数用于突出显示饼图中的指定部分

下面来具体看下其中几个参数的用法

1. labels

labels指定每个部分的标签,用法如下

plt.pie(x=[1, 2, 3, 4], labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'])

出结果如下

2. autopct

autopct设置饼图上的标记信息,有两种设置方式,第一种,设置字符串格式化,用法如下

plt.pie(x=[1, 2, 3, 4], labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'], autopct='%.1f%%')

输出结果如下

第二种,用函数来进行设置,用法如下

data=[1,2,3,4]
plt.pie(x=data, labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'], autopct=lambda pct:'({:.1f}%)\n{:d}'.format(pct, int(pct/100 * sum(data))))

输出结果如下

3.  explode

explode用于突出线似乎饼图中的子集,用间隔突出的方式进行显示,用法如下

plt.pie(x=[1, 2, 3, 4], labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'], autopct='%1.1f%%', explode = [0, 0, 0.05, 0])

输出结果如下

4. startangle

startangle指定起始角度,用法如下

plt.pie(x=[1, 2, 3, 4], labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'], autopct='%1.1f%%',startangle=90)

输出结果如下

5. countercolock

countercolock用于调整饼图的方向,用法如下

plt.pie(x=[1, 2, 3, 4], labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'], autopct='%1.1f%%',counterclock=False)

输出结果如下

6. radius

radius用于设置饼图的半径,半径越大,饼图越大,用法如下

plt.pie(x=[1, 2, 3, 4], labels=['sampleA', 'sampleB', 'sampleC', 'sampleD'], autopct='%1.1f%%',radius=1.5)

输出结果如下

对于饼图而言,有一个非常现实的问题,就是图例的设置,在单张图片中,饼图的内容总是汇合图例重叠,示意如下

为了将图例和内容有效的区分开来,可以通过设置legend方法的bbox_to_anchor参数,该参数用于设置图例区域在figure上的坐标,其值为4个元素的元组,分别表示x,y,width,height, 代码如下

data=[1,2,3,4]
labels=['sampleA', 'sampleB', 'sampleC', 'sampleD']
plt.pie(x=data, labels=labels, autopct=lambda pct:'({:.1f}%)\n{:d}'.format(pct, int(pct/100 * sum(data))))
plt.legend(labels,loc="upper left",bbox_to_anchor=(1.2, 0, 0.5, 1))

x的值大于1,表示图例的位置位于axes右侧区域,x的值越大,图例和饼图之间的空隙越大,上述代码的输出效果如下

饼图作为常用图表之一,在展示百分比信息时,有不可替代的优势。matplotlib中的pie函数在传统饼图的基础上,添加了突出展示的功能,进一步加强了饼图的可视化效果。

·end·

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
数据分析之Matplotlib(六)饼图(pie)
从零开始学Python-matplotlib系列(II):饼图
Python通过matplotlib画双层饼图及环形图简单示例
Matplotlib数据可视化:饼图与箱线图
python绘制饼图的方法详解
饼图
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服