利用Tkinter和matplotlib两种方式画饼状图的实例
作者:欠你一颗糖 发布时间:2021-09-22 18:10:35
标签:画饼图,Tkinter,matplotlib
当我们学习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()
其实两种方法都大同小异,只不过应用的模块不一样,第一种方法只能绘制图形不能添加饼图的内容,而第二种方法内部封装的饼形图的样式,可以添加的样式也丰富多彩。
来源:http://www.cnblogs.com/KBe24Love/archive/2017/11/05/7789962.html


猜你喜欢
- 一.需求统计收集各个实例上table的信息,主要是表的记录数及大小。收集的范围是cmdb中所有的数据库实例。二.公共基础文件说明1.配置文件
- map()是python的一个内建函数, 他能够通过函数来处理序列,比如,我们相关一个数组[0,1,2,3,4,5]所有的数字都+2 , 当
- Javascript中括号有四种语义语义1,声明数组 var ary = []; // 声明一个空数组var ary = [1,3]; //
- 如果直接在命令行中利用input和raw_input读入一个文件来处理,并且想要采用直接将文件拖入命令行来处理的方式,input方法可以直接
- 目录模板的用处模板语法继承和super函数利用jinja2 进行渲染模板的用处jinja2 可以用来修改配置文件,把配置文件的关键地方可以用
- 今天在测试php程序的时候,出现了一个错误提示:Cannot use a scalar value as an array,这个错误提示前几
- 私有变量表示方法在变量前加上两个下划线的是私有变量。class Teacher(): def __init__(self,nam
- 简单总结:1、与类和实例无绑定关系的function都属于函数(function);2、与类和实例有绑定关系的function都属于方法(m
- 问题怎样捕获代码中的所有异常?解决方案想要捕获所有的异常,可以直接捕获 Exception 即可:try: ...except
- 本文实例讲述了django框架实现一次性上传多个文件功能。分享给大家供大家参考,具体如下:在用django 写文件上传的时候,从reques
- 1、层次索引1.1 定义在某一个方向拥有多个(两个及两个以上)索引级别,就叫做层次索引。通过层次化索引,pandas能够以较低维度形式处理高
- SQL Server 阻止了对组件 'Ad Hoc Distributed&nbs
- 手残更新Pycharm 2020.1 版时将配置文件都删除了😂;在此重新记录下配置!安装教程参考:idea2020.1最新版永久破解/pyc
- 最近一直在研究 Javascript 相关的技术。在《Javascript 高级程序设计》有篇章节着重阐述了优
- 本文实例为大家分享了python3连接MySQL数据库的具体代码,供大家参考,具体内容如下#python3连接MySQL实例import p
- 今天要做个搜索,用到了时间比较函数!以前多是直接比较时间,查询语句有长效率又不高~~~后来用了DateDiff函数,在调试的时候发现了一些问
- 意思就是画四条直线,四条直线都不能相交即可。#!/usr/bin/python#coding: UTF-8import turtleimpo
- 最近学习了一下前后端分离技术,前端用的是Vue,后段用的是Flask。vue官网:开源的 Javascript 框架,vue是一套构建用户界
- 函数调用方法:numpy.zeros(shape, dtype=float)各个参数意义:shape:创建的新数组的形状(维度)。dtype
- dotnet run 介绍dotnet 相关命令是属于 .NET Core command-line (CLI) 的一部分,Microsof