温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

matplotlib与tkinter集成的示例分析

发布时间:2021-12-22 09:14:43 阅读:335 作者:小新 栏目:大数据
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

这篇文章主要介绍了matplotlib与tkinter集成的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

matplotlib 是绘图界最通用的库,功能强大,与其他系统集成友好,比如Python内置的绘图模块tkinter,主要目标:  实现一个使用tkinter集成matplotlib交互绘图案例  。

tkinter模块设计精简,满足一些小型GUI设计,首先创建一个窗体对象,添加基本组件,如Label,Button,Radiobutton等,再pack或grid组件到父容器中。

此案例,创建tkinter窗口及组件的代码,如下:


window = tk.Tk()# 第2步,给窗口的可视化起名字window.title('My Window')# 第3步,设定窗口的大小(长 * 宽)# 这里的乘是小xwindow.geometry('1200x600')# 第4步,在图形界面上创建一个标签label用以显示并放置# 定义一个var用来将radiobutton的值和Label的值联系在一起.var = tk.StringVar()l = tk.Label(window, bg='yellow', width=30, height=3,             text='matplotlib in tkinter', font=('Arial'21))l.pack()
上面创建一个基本窗体,在上面创建Radiobutton组件,其父窗体是window对象。

然后创建一个frame对象,在里面,再填充2个frame对象,一个位于左侧,另一个位于右侧:
# 第二层frame,左frame,长在主frame上frame_l = tk.Frame(frame)# 第二层frame,右frame,长在主frame上frame_r = tk.Frame(frame)frame_l.pack(side='left')frame_r.pack(side='right')
然后,在左侧frame中创建柱状图,右侧frame中创建饼状图。

下面就是最重要的tkinter和matplotlib集成部分,matplotlib提供FigureCanvasTkAgg对象,只需三行代码,实现图形绘制在tkinter的Canvas中:
canvas_l = FigureCanvasTkAgg(figure_l, frame_l)# 用draw代替canvas_l.draw()canvas_l.get_tk_widget().pack()

第一行代码实现figure对象(matplotlib对象)与frame对象(tkinter组件)关系的建立,第二行使用集成后的对象中的draw方法绘图,最后拿到tkinter组件并组装到tkinter中。


最终实现的展示效果如下:

matplotlib与tkinter集成的示例分析

交互部分,选中Radiobutton中bar选项后,仅显示柱状图:

matplotlib与tkinter集成的示例分析


选中pie选项时,仅显示饼状图:

matplotlib与tkinter集成的示例分析

当选中both选项后,恢复全部显示。  

感谢你能够认真阅读完这篇文章,希望小编分享的“matplotlib与tkinter集成的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

原文链接:https://my.oschina.net/u/4585819/blog/4699880

AI

开发者交流群×