Python实现饼状图:Tkinter Canvas与Matplotlib对比详解
本文详细讲解Python中利用Tkinter的Canvas画布和第三方模块Matplotlib的pyplot绘制饼状图的两种方法。通过对比代码实例,分析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()
这两种方法在核心逻辑上相似,主要区别在于所依赖的模块不同。第一种方法仅能绘制图形本身,无法直接添加饼图内部的文字内容;而第二种方法内部封装了更丰富的饼图样式,支持添加多样化的装饰和标签,视觉效果更为丰富。
以上关于利用Tkinter和matplotlib两种方式绘制饼状图的实例分享完毕,希望能为读者提供有价值的参考。欢迎大家继续支持本站,获取更多技术内容。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













