利用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标准算法实现数组全排列的方法
Mar 17 Python
python中的闭包用法实例详解
May 05 Python
Python基础教程之tcp socket编程详解及简单实例
Feb 23 Python
Python中表达式x += y和x = x+y 的区别详解
Jun 20 Python
python中安装Scrapy模块依赖包汇总
Jul 02 Python
Flask实现图片的上传、下载及展示示例代码
Aug 03 Python
对python xlrd读取datetime类型数据的方法详解
Dec 26 Python
python将视频转换为全字符视频
Apr 26 Python
Python对HTML转义字符进行反转义的实现方法
Apr 28 Python
python之拟合的实现
Jul 19 Python
python装饰器代码深入讲解
Mar 01 Python
python获取对象信息的实例详解
Jul 07 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
PHP5中的时间相差8小时的解决办法
2008/03/28 PHP
php实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
PHP实现的简单日历类
2014/11/29 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
Laravel6.2中用于用户登录的新密码确认流程详解
2019/10/16 PHP
php桥接模式应用案例分析
2019/10/23 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
JS+CSS实现的经典圆角下拉菜单效果代码
2015/10/21 Javascript
jQuery实现的简单分页示例
2016/06/01 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
js实现textarea限制输入字数
2017/02/13 Javascript
socket.io与pm2(cluster)集群搭配的解决方案
2017/06/02 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
2018/01/17 Javascript
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
2018/07/26 Javascript
js根据需要计算数组中重复出现某个元素的个数
2019/01/18 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
ES6新增的数组知识实例小结
2020/05/23 Javascript
Python的Flask框架应用调用Redis队列数据的方法
2016/06/06 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
Python values()与itervalues()的用法详解
2019/11/27 Python
利用Python脚本实现自动刷网课
2020/02/03 Python
Jupyter notebook快速入门教程(推荐)
2020/05/18 Python
Python求区间正整数内所有素数之和的方法实例
2020/10/13 Python
乌克兰电子产品和家用电器购物网站:TOUCH
2019/08/09 全球购物
计算机专业自我鉴定
2013/10/15 职场文书
优秀英语专业毕业生求职信
2013/11/23 职场文书
财务会计专业推荐信
2013/11/30 职场文书
4s客服专员岗位职责
2013/12/01 职场文书
2014年化验室工作总结
2014/11/21 职场文书
小学中队委竞选稿
2015/11/20 职场文书
详解Node.js如何处理ES6模块
2021/05/15 Javascript
Mac电脑OS系统下安装Nginx的详细教程
2022/04/14 Servers
python APScheduler执行定时任务介绍
2022/04/19 Python