利用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 相关文章推荐
tornado框架blog模块分析与使用
Nov 21 Python
利用 Monkey 命令操作屏幕快速滑动
Dec 07 Python
python获取代理IP的实例分享
May 07 Python
python爬取指定微信公众号文章
Dec 20 Python
使用Python进行体育竞技分析(预测球队成绩)
May 16 Python
python中enumerate() 与zip()函数的使用比较实例分析
Sep 03 Python
简单瞅瞅Python vars()内置函数的实现
Sep 27 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
Jan 03 Python
Python 炫技操作之合并字典的七种方法
Apr 10 Python
基于Tensorflow的MNIST手写数字识别分类
Jun 17 Python
python进行二次方程式计算的实例讲解
Dec 06 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
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
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
2014/12/16 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
Js event事件在IE、FF兼容性问题
2011/01/01 Javascript
jQuery下拉友情链接美化效果代码分享
2015/08/26 Javascript
Jquery操作Ajax方法小结
2015/11/29 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
JS实现无缝循环marquee滚动效果
2017/05/22 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
Javascript实现购物车功能的详细代码
2018/05/08 Javascript
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
[02:38]DOTA2亚洲邀请赛小组赛精彩集锦:Wings完美团击溃对手
2017/03/29 DOTA
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
用ReactJS和Python的Flask框架编写留言板的代码示例
2015/12/19 Python
Python单例模式的两种实现方法
2017/08/14 Python
高质量Python代码编写的5个优化技巧
2017/11/16 Python
Python中static相关知识小结
2018/01/02 Python
appium+python adb常用命令分享
2020/03/06 Python
Python文件操作基础流程解析
2020/03/19 Python
Python数据可视化实现漏斗图过程图解
2020/07/20 Python
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
Chemist Warehouse官方海外旗舰店:澳洲第一连锁大药房
2017/08/25 全球购物
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
Nebula美国官网:便携式投影仪
2019/03/15 全球购物
Interflora澳大利亚:同日鲜花速递
2019/06/25 全球购物
主办会计岗位职责
2014/03/13 职场文书
事业单位岗位说明书
2015/10/08 职场文书
2019行政前台转正申请书范文3篇
2019/08/15 职场文书
mybatis使用oracle进行添加数据的方法
2021/04/27 Oracle
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL