利用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 字符串和日期之间转换 StringAndDate
May 04 Python
python 接口_从协议到抽象基类详解
Aug 24 Python
基于Django用户认证系统详解
Feb 21 Python
python 执行shell命令并将结果保存的实例
May 11 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
Jul 06 Python
python发送告警邮件脚本
Sep 17 Python
python实现静态web服务器
Sep 03 Python
django在开发中取消外键约束的实现
May 20 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
Jun 02 Python
python 实现单例模式的5种方法
Sep 23 Python
Selenium+BeautifulSoup+json获取Script标签内的json数据
Dec 07 Python
Python可视化神器pyecharts绘制水球图
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
用cookies来跟踪识别用户
2006/10/09 PHP
PHP合并数组+与array_merge的区别分析
2010/08/01 PHP
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
PHP输出日历表代码实例
2015/03/27 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
Web版彷 Visual Studio 2003 颜色选择器
2007/01/09 Javascript
用jquery实现输入框获取焦点消失文字
2013/04/27 Javascript
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
2015/02/26 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
BootStrap Table 后台数据绑定、特殊列处理、排序功能
2017/05/27 Javascript
vue2.0中click点击当前li实现动态切换class
2017/06/21 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
2018/07/24 Javascript
Vue的props父传子的示例代码
2020/05/20 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
python实现人人网登录示例分享
2014/01/19 Python
跟老齐学Python之集合的关系
2014/09/24 Python
用Python遍历C盘dll文件的方法
2015/05/06 Python
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
Python合并多个Excel数据的方法
2018/07/16 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
残疾人小组计划书
2014/04/27 职场文书
党员个人对照检查材料
2014/10/01 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书
少先队中队工作总结2015
2015/07/23 职场文书
父亲节感言
2015/08/03 职场文书
SpringBoot中HttpSessionListener的简单使用方式
2022/03/17 Java/Android