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 pickle类库介绍(对象序列化和反序列化)
Nov 21 Python
详解Python的Flask框架中的signals信号机制
Jun 13 Python
python list元素为tuple时的排序方法
Apr 18 Python
对Tensorflow中的矩阵运算函数详解
Jul 27 Python
Windows系统下PhantomJS的安装和基本用法
Oct 21 Python
python实现QQ邮箱/163邮箱的邮件发送
Jan 22 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
Feb 22 Python
python实现电子产品商店
Feb 26 Python
Django 缓存配置Redis使用详解
Jul 23 Python
Django admin model 汉化显示文字的实现方法
Aug 12 Python
pytorch中torch.max和Tensor.view函数用法详解
Jan 03 Python
keras 多任务多loss实例
Jun 22 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采集速度探究总结(原创)
2008/04/18 PHP
让你成为更出色的PHP开发者的10个技巧
2011/02/25 PHP
常见的PHP五种设计模式小结
2011/03/23 PHP
yii的CURD操作实例详解
2014/12/04 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
Js中sort()方法的用法
2006/11/04 Javascript
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
js 中的switch表达式使用示例
2020/06/03 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
Nodejs Post请求报socket hang up错误的解决办法
2014/09/25 NodeJs
鼠标悬停小图标显示大图标
2016/01/22 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
2016/12/18 Javascript
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
详解使用nodeJs安装Vue-cli
2017/05/17 NodeJs
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
详解layui弹窗父子窗口之间传参数的方法
2018/01/16 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
2018/08/29 Javascript
VUE 实现复制内容到剪贴板的两种方法
2019/04/24 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
2020/06/01 Javascript
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
Python socket实现的简单通信功能示例
2018/08/21 Python
python使用epoll实现服务端的方法
2018/10/16 Python
django使用django-apscheduler 实现定时任务的例子
2019/07/20 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
keras打印loss对权重的导数方式
2020/06/10 Python
python实现mask矩阵示例(根据列表所给元素)
2020/07/30 Python
html5 标签
2009/07/16 HTML / CSS
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
Feelunique德国官方网站:欧洲最大的在线美容零售商
2019/07/20 全球购物
会议邀请书范文
2014/02/02 职场文书
人事专员岗位说明书
2014/07/29 职场文书
某学校的2019年度工作报告范本
2019/10/11 职场文书
Golang连接并操作MySQL
2022/04/14 MySQL