利用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中的多线程编程
Apr 09 Python
Python里disconnect UDP套接字的方法
Apr 23 Python
Python 多进程和数据传递的理解
Oct 09 Python
ML神器:sklearn的快速使用及入门
Jul 11 Python
twilio python自动拨打电话,播放自定义mp3音频的方法
Aug 08 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
Oct 25 Python
python文件和文件夹复制函数
Feb 07 Python
python实现五子棋程序
Apr 24 Python
python matplotlib绘制三维图的示例
Sep 24 Python
Django解决frame拒绝问题的方法
Dec 18 Python
python爬取豆瓣电影排行榜(requests)的示例代码
Feb 18 Python
教你使用TensorFlow2识别验证码
Jun 11 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
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
php读取excel文件示例分享(更新修改excel)
2014/02/27 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
JavaScript 程序编码规范
2010/11/23 Javascript
javascript面向对象入门基础详细介绍
2012/09/05 Javascript
javascript模块化是什么及其优缺点介绍
2013/09/02 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
JS JQUERY实现滚动条自动滚到底的方法
2015/01/09 Javascript
jQuery插件imgPreviewQs实现上传图片预览
2016/01/15 Javascript
JavaScript+html5 canvas绘制渐变区域完整实例
2016/01/26 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
js仿支付宝多方框输入支付密码效果
2016/09/27 Javascript
jquery 动态增加删除行的简单实例(推荐)
2016/10/12 Javascript
微信小程序 绘图之饼图实现
2016/10/24 Javascript
jQuery的extend方法【三种】
2016/12/14 Javascript
Vue Cli与BootStrap结合实现表格分页功能
2017/08/18 Javascript
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
详解Vue中一种简易路由传参办法
2017/09/15 Javascript
Vue.js watch监视属性知识点总结
2019/11/11 Javascript
微信小程序基于movable-view实现滑动删除效果
2020/01/08 Javascript
[01:03:00]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第一局
2016/02/25 DOTA
python smtplib发送带附件邮件小程序
2018/05/22 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
Python银行系统实战源码
2019/10/25 Python
在CentOS7下安装Python3教程解析
2020/07/09 Python
CSS3标注引用的出处和来源的方法
2020/02/25 HTML / CSS
瑰珀翠美国官网:Crabtree & Evelyn美国
2016/11/29 全球购物
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
个人简历自荐信
2013/12/05 职场文书
师范毕业生求职信
2014/07/11 职场文书
机电一体化专业求职信
2014/07/22 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
全新239军机修复记
2022/04/05 无线电