利用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数据类型之列表
Jun 24 Python
Python3调用微信企业号API发送文本消息代码示例
Nov 10 Python
Python解决N阶台阶走法问题的方法分析
Dec 28 Python
pandas对指定列进行填充的方法
Apr 11 Python
Python学习小技巧总结
Jun 10 Python
python pygame实现2048游戏
Nov 20 Python
python爬虫超时的处理的实例
Dec 19 Python
详解Python的三种可变参数
May 08 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
Python如何实现线程间通信
Jul 30 Python
python 写一个水果忍者游戏
Jan 13 Python
快速一键生成Python爬虫请求头
Mar 04 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 清空varnish 缓存的详解(包括指定站点下的)
2013/06/20 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
2017/08/07 PHP
JavaScript的面向对象方法以及差别
2008/03/31 Javascript
JavaScript入门学习书籍推荐
2008/06/12 Javascript
Mootools 1.2教程 事件处理
2009/09/15 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
2013/02/26 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
2013/11/26 Javascript
基于JavaScript实现移动端点击图片查看大图点击大图隐藏
2015/11/04 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
jQuery Ajax和getJSON获取后台普通json数据和层级json数据用法分析
2016/06/08 Javascript
AngularJS 获取ng-repeat动态生成的ng-model值实例详解
2016/11/29 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
Angular学习教程之RouterLink花式跳转
2018/05/03 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
JavaScript对象的特性与实践应用深入详解
2018/12/30 Javascript
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
JavaScript函数IIFE使用详解
2019/10/21 Javascript
JavaScript提升机制Hoisting详解
2019/10/23 Javascript
vue使用axios实现excel文件下载的功能
2020/07/16 Javascript
解决vue中el-tab-pane切换的问题
2020/07/19 Javascript
微信小程序实现弹幕墙(祝福墙)
2020/11/18 Javascript
python实现2014火车票查询代码分享
2014/01/10 Python
python 解析XML python模块xml.dom解析xml实例代码
2014/02/07 Python
快速了解Python相对导入
2018/01/12 Python
python tkinter组件摆放方式详解
2019/09/16 Python
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
如何用css3实现switch组件开关的方法
2018/02/09 HTML / CSS
美国最大的宠物药店:1-800-PetMeds
2016/10/02 全球购物
泰国第一在线超市:Tops
2021/02/13 全球购物
家具厂厂长岗位职责
2014/01/01 职场文书
《夜晚的实验》教学反思
2014/02/19 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
家装电话营销开场白
2015/05/29 职场文书
Django一小时写出账号密码管理系统
2021/04/29 Python