利用Tkinter和matplotlib两种方式画饼状图的实例


Posted in Python onNovember 06, 2017

当我们学习python的时候,总会用到一些常用的模块,接下来我就详细讲解下利用两种不同的方式画饼状图。
首先利用【Tkinter】中的canvas画布来画饼状图:

from tkinter import Tk, Canvas
def DrawPie():
  #创建窗口
  windows=Tk()

  #添加标题
  windows.title("画饼图")

  # 设置画布样式
  canvas=Canvas(windows,height=500,width=500)

  # 将画布打包到窗口
  canvas.pack()

  #利用画布的create_arc画饼形,(400,400)和(100,100)为饼形外围的矩形,
  # start=角度起始,extent=旋转的度数,fill=填充的颜色
  canvas.create_arc(400,400,100,100,start=0,extent=36,fill="red")
  canvas.create_arc(400,400,100,100,start=36,extent=72,fill="green")
  canvas.create_arc(400,400,100,100,start=108,extent=108,fill="yellow")
  canvas.create_arc(400,400,100,100,start=216,extent=144,fill="blue")

  # 为各个扇形添加内容,圆心为(250,250)
  canvas.create_text(430,200,text="36°",font=("华文新魏",20))
  canvas.create_text(330,100,text="72°",font=("华文新魏",20))
  canvas.create_text(90,200,text="108°",font=("华文新魏",20))
  canvas.create_text(390,370,text="144°",font=("华文新魏",20))

  # 开启消息循环
  windows.mainloop()

if __name__ == '__main__':
#调用方法
  DrawPie()

以上方法就是用的Tkinter画布来画饼状图的,接下来我们来看下第三方模块【matplotlib】中的pyplot:

from matplotlib import pyplot
# 中文支持
pyplot.rcParams['font.sans-serif'] = ['SimHei']
# 用来正常显示中文标签
pyplot.rcParams['axes.unicode_minus'] = False # 用来正常显示负号

def showPieChart():
   #调用pyplot模块中的pie方法绘制饼图,pie方法的第一个参数是各个部分所占的比例,后面其他的参数是对饼形图的一些修饰的标签,
labels为描述的内容,startangle为绘制的起始角度,counterclock为绘制的方向(默认为逆时针)

  pyplot.pie([36,72,108,144], labels=["36°", "72°", "108°", "144°"], startangle=90, counterclock=False)
   #显示图形
  pyplot.show()

if __name__ == '__main__':
 #调用函数
  showPieChart()

其实两种方法都大同小异,只不过应用的模块不一样,第一种方法只能绘制图形不能添加饼图的内容,而第二种方法内部封装的饼形图的样式,可以添加的样式也丰富多彩。

以上这篇利用Tkinter和matplotlib两种方式画饼状图的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的super用法详解
May 28 Python
Python实现嵌套列表及字典并按某一元素去重复功能示例
Nov 30 Python
Python多重继承的方法解析执行顺序实例分析
May 26 Python
python连接mongodb密码认证实例
Oct 16 Python
python selenium 弹出框处理的实现
Feb 26 Python
Django命名URL和反向解析URL实现解析
Aug 09 Python
分享一个pycharm专业版安装的永久使用方法
Sep 24 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
Python接口测试结果集实现封装比较
May 01 Python
通过案例解析python鸭子类型相关原理
Oct 10 Python
python中time tzset()函数实例用法
Feb 18 Python
python解决OpenCV在读取显示图片的时候闪退的问题
Feb 23 Python
django实现登录时候输入密码错误5次锁定用户十分钟
Nov 05 #Python
用Python登录好友QQ空间点赞的示例代码
Nov 04 #Python
Python通过命令开启http.server服务器的方法
Nov 04 #Python
Python实现一个简单的验证码程序
Nov 03 #Python
Python编程django实现同一个ip十分钟内只能注册一次
Nov 03 #Python
简单了解Python中的几种函数
Nov 03 #Python
python Pygame的具体使用讲解
Nov 03 #Python
You might like
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
游戏人文件夹程序 ver 4.03
2006/07/14 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
js实现右下角提示框的方法
2015/02/03 Javascript
jQuery Mobile框架中的表单组件基础使用教程
2016/05/17 Javascript
jQuery中的siblings()是什么意思(推荐)
2016/12/29 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
原生javascript实现连连看游戏
2019/01/03 Javascript
Angular Excel 导入与导出的实现代码
2019/04/17 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
Angular value与ngValue区别详解
2019/11/27 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
[02:55]DOTA2英雄基础教程 发条技师
2013/12/04 DOTA
11月编程语言排行榜 Python逆袭C#上升到第4
2017/11/15 Python
详解pandas删除缺失数据(pd.dropna()方法)
2019/06/25 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
python如何保证输入键入数字的方法
2019/08/23 Python
python爬虫爬取笔趣网小说网站过程图解
2019/11/18 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
Alexandre Birman美国官网:亚历山大·伯曼
2019/10/30 全球购物
接待员岗位责任制
2014/02/10 职场文书
学校爱国卫生月活动总结
2014/06/25 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
Spring Cloud 中@FeignClient注解中的contextId属性详解
2021/09/25 Java/Android
Python爬虫入门案例之爬取二手房源数据
2021/10/16 Python
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle
Mysql数据库group by原理详解
2022/07/07 MySQL