利用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中利用await关键字如何等待Future对象完成详解
Sep 07 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
Apr 28 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
May 07 Python
Python使用Pickle库实现读写序列操作示例
Jun 15 Python
Python封装原理与实现方法详解
Aug 28 Python
BP神经网络原理及Python实现代码
Dec 18 Python
Python使用LDAP做用户认证的方法
Jun 20 Python
Python实现12306火车票抢票系统
Jul 04 Python
Python matplotlib绘制饼状图功能示例
Sep 10 Python
Tensorflow限制CPU个数实例
Feb 06 Python
python学习将数据写入文件并保存方法
Jun 07 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 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 stripos()函数及注意事项的分析
2013/06/08 PHP
PHP实现微信提现功能
2018/09/30 PHP
javascript开发随笔一 preventDefault的必要
2011/11/25 Javascript
jquery通过扩展select控件实现支持enter或focus选择的方法
2015/11/19 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
js按条件生成随机json:randomjson实现方法
2017/04/07 Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
2017/07/09 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
使用webpack将ES6转化ES5的实现方法
2019/10/13 Javascript
vue实现购物车结算功能
2020/06/18 Javascript
vant实现购物车功能
2020/06/29 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
Python Web框架Flask中使用七牛云存储实例
2015/02/08 Python
python实现指定字符串补全空格的方法
2015/04/30 Python
Django中Forms的使用代码解析
2018/02/10 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
PyTorch中的padding(边缘填充)操作方式
2020/01/03 Python
keras中的History对象用法
2020/06/19 Python
CentOS 7如何实现定时执行python脚本
2020/06/24 Python
Python 如何查找特定类型文件
2020/08/17 Python
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
HTML5 body设置全屏背景图片的示例代码
2020/12/08 HTML / CSS
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
C# .NET面试题
2015/11/28 面试题
Linux的主要特性
2014/10/06 面试题
公司出纳岗位职责
2013/12/07 职场文书
高三历史教学反思
2014/01/09 职场文书
预防煤气中毒方案
2014/06/16 职场文书
2014最新实习证明模板
2014/10/02 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
会计岗位职责
2015/02/03 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL