python通过matplotlib生成复合饼图


Posted in Python onFebruary 06, 2020

可以通过matplotlib实现

from matplotlib.patches import ConnectionPatch
#制画布fig = plt.figure(figsize=(9,5.0625))
ax1 = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
fig.subplots_adjust(wspace=0)
#大饼图的制作
labels = newdata8.index
size = newdata8.quantity
explode=(0,0,0,0,0,0.1)
ax1.pie(size, autopct='%1.1f%%',startangle=30,labels=labels,explode=explode)
#小饼图的制作
labels2 = others.index
size2 = others.quantity
width=0.2
ax2.pie(size2, autopct='%1.1f%%',startangle=90,labels=labels2,
    radius=0.5,shadow=True)
#使用ConnectionPatch画出两个饼图的间连线
#先得到饼图边缘的数据
theta1, theta2 = ax1.patches[5].theta1, ax1.patches[5].theta2
center, r = ax1.patches[5].center,ax1.patches[5].r
#画出上边缘的连线
x = r*np.cos(np.pi/180*theta2)+center[0]
y = np.sin(np.pi/180*theta2)+center[1]
con = ConnectionPatch(xyA=(-width/2,0.5),xyB=(x,y),
           coordsA='data', coordsB='data',axesA=ax2,axesB=ax1)
con.set_linewidth(2)
con.set_color=([0,0,0])
ax2.add_artist(con)
#画出下边缘的连线
x = r*np.cos(np.pi/180*theta1)+center[0]
y = np.sin(np.pi/180*theta1)+center[1]
con = ConnectionPatch(xyA=(-width/2,-0.5),xyB=(x,y),
           coordsA='data', coordsB='data',axesA=ax2,axesB=ax1)
con.set_linewidth(2)
con.set_color=([0,0,0])
ax2.add_artist(con)
plt.show()

输出:

python通过matplotlib生成复合饼图

图源数据为快餐店销量

总结

以上所述是小编给大家介绍的python通过matplotlib实现生成复合饼图,希望对大家有所帮助!

Python 相关文章推荐
python实现带验证码网站的自动登陆实现代码
Jan 12 Python
Python中的两个内置模块介绍
Apr 05 Python
Google开源的Python格式化工具YAPF的安装和使用教程
May 31 Python
Windows安装Python、pip、easy_install的方法
Mar 05 Python
Python基于回溯法子集树模板实现图的遍历功能示例
Sep 05 Python
Python数据可视化正态分布简单分析及实现代码
Dec 04 Python
python3.x实现发送邮件功能
May 22 Python
python实现控制台打印的方法
Jan 12 Python
Python 装饰器原理、定义与用法详解
Dec 07 Python
Python3 中作为一等对象的函数解析
Dec 11 Python
python3.6使用SMTP协议发送邮件
May 20 Python
Python 如何实现数据库表结构同步
Sep 29 Python
tensorflow 初始化未初始化的变量实例
Feb 06 #Python
python中count函数简单的实例讲解
Feb 06 #Python
tensorflow之变量初始化(tf.Variable)使用详解
Feb 06 #Python
使用TensorFlow搭建一个全连接神经网络教程
Feb 06 #Python
详解python 降级到3.6终极解决方案
Feb 06 #Python
PyCharm如何导入python项目的方法
Feb 06 #Python
tensorflow 环境变量设置方式
Feb 06 #Python
You might like
PHP模块 Memcached功能多于Memcache
2011/06/14 PHP
php实现Session存储到Redis
2015/11/11 PHP
laravel入门知识点整理
2020/09/15 PHP
编写高性能的JavaScript 脚本的加载与执行
2010/04/19 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
JS获取当前日期时间并定时刷新示例
2021/03/04 Javascript
js继承call()和apply()方法总结
2014/12/08 Javascript
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
jQuery中next方法用法实例
2015/04/24 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
javascript事件绑定学习要点
2016/03/09 Javascript
jQuery点击头像上传并预览图片
2017/02/23 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
JavaScript实现无限级递归树的示例代码
2019/03/29 Javascript
javascript面向对象三大特征之多态实例详解
2019/07/24 Javascript
Vue实现手机计算器
2020/08/17 Javascript
[02:56]《DAC最前线》之国外战队抵达上海备战亚洲邀请赛
2015/01/28 DOTA
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
[01:38]2018DOTA2亚洲邀请赛主赛事第二日现场采访 神秘商人痛陈生计不易
2018/04/05 DOTA
python制作花瓣网美女图片爬虫
2015/10/28 Python
简单掌握Python的Collections模块中counter结构的用法
2016/07/07 Python
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
Python进程间通信之共享内存详解
2017/10/30 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
2019/02/11 Python
django中使用POST方法获取POST数据
2019/08/20 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
2020/02/05 Python
Java中的异常处理机制的简单原理和应用
2013/04/27 面试题
美术专业个人自我评价
2014/01/18 职场文书
麦当劳辞职信范文
2014/01/18 职场文书
教师节活动总结
2014/08/29 职场文书
2015幼儿园庆元旦活动方案
2014/12/09 职场文书
Redis数据结构之链表与字典的使用
2021/05/11 Redis