码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python Matplotlib Tkinter-->最终框架一


    3D雷达上位机实例(能够通过点击柱状图来展示3D雷达数据)2024.2.26
    环境
    python:python-3.12.0-amd64
    包:
    matplotlib 3.8.2
    pillow  10.1.0
    1. import matplotlib.pyplot as plt
    2. from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
    3. import tkinter as tk
    4. import tkinter.messagebox as messagebox
    5. import tkinter.ttk as ttk
    6. # 创建自定义工具栏类
    7. class MyNavigationToolbar(NavigationToolbar2Tk):
    8. toolitems = [('Home','回到初始状态','home','home'),
    9. ('Back', '后退', 'back', 'back'),
    10. ('Home', '前进', 'forward', 'forward'),
    11. ('Pan', '平移', 'move', 'pan'),
    12. ('Zoom', '缩放', 'zoom_to_rect', 'zoom'),
    13. ('Save', '保存', 'filesave', 'save_figure')]
    14. def __init__(self, *args, **kwargs):
    15. show_toolbar = kwargs.pop('show_toolbar', True)
    16. super().__init__(*args, **kwargs)
    17. if not show_toolbar:
    18. self.pack_forget()
    19. self.custom_button_img1 = tk.PhotoImage(file='figure_pic1.png') # 创建第一个图片按钮
    20. self.custom_button1 = ttk.Button(self, image=self.custom_button_img1, command=lambda: print('111.'))
    21. self.custom_button1.pack(side=tk.LEFT) # 添加按钮到工具栏上
    22. self.custom_button_img2 = tk.PhotoImage(file='figure_pic2.png') # 创建第二个图片按钮
    23. self.custom_button2 = ttk.Button(self, image=self.custom_button_img2, command=lambda: print('111.'))
    24. self.custom_button2.pack(side=tk.LEFT) # 添加按钮到工具栏上
    25. # 创建 Tkinter 窗口
    26. window = tk.Tk()
    27. window.title("Matplotlib in Tkinter")
    28. # 设置窗口大小和位置
    29. window.geometry('800x600')
    30. # 创建选项卡控件
    31. notebook = ttk.Notebook(window)
    32. # 创建第一个选项卡
    33. tab1 = ttk.Frame(notebook)
    34. fig1 = plt.figure()
    35. plt.plot([1, 2, 3], [4, 5, 6])
    36. canvas1 = FigureCanvasTkAgg(fig1, master=tab1)
    37. canvas1.draw()
    38. toolbar1 = MyNavigationToolbar(canvas1, tab1)
    39. toolbar1.update()
    40. toolbar1.pack(side=tk.TOP, fill=tk.X, padx=5, pady=5)
    41. canvas1.get_tk_widget().pack(fill=tk.BOTH, expand=True, padx=5, pady=5)
    42. notebook.add(tab1, text='图表1')
    43. # 创建第二个选项卡
    44. tab2 = ttk.Frame(notebook)
    45. fig2 = plt.figure()
    46. plt.plot([3, 2, 1], [6, 5, 4])
    47. canvas2 = FigureCanvasTkAgg(fig2, master=tab2)
    48. canvas2.draw()
    49. toolbar2 = MyNavigationToolbar(canvas2, tab2, show_toolbar=False)
    50. toolbar2.update()
    51. canvas2.get_tk_widget().pack(fill=tk.BOTH, expand=True, padx=5, pady=5)
    52. notebook.add(tab2, text='图表2')
    53. notebook.pack(fill=tk.BOTH, expand=True)
    54. window.mainloop()

    图片资源下载(分享-->python Matplotlib  Tkinter图片):

    链接:https://pan.baidu.com/s/1vFOU52gG0bgK8RYuj-dzOg 
    提取码:2oy0 

  • 相关阅读:
    Python异步编程之web框架 异步vs同步 Redis并发对比
    Linux多线程【线程互斥与同步】
    41-数组 _ 数组作为函数参数
    港科夜闻|香港科大计划建立北部都会区卫星校园完善"科大创新带",发展未来创新科技 未来医药发展及跨学科教育...
    NestJS 使用体验 | 不如 Spring Boot
    Java编写xml文件时,文件中特殊字符如何解决?
    安装VSCode,提升工作效率!iPad Pro生产力进阶之路
    基于JAVA抑抑心理交流平台计算机毕业设计源码+系统+数据库+lw文档+部署
    Matlab图像处理-
    【看表情包学Linux】软硬链接 | 软连接数 | 创建软硬链接 | 动静态库 | 生成静态库 | 生成动态库
  • 原文地址:https://blog.csdn.net/caoyanchao1/article/details/136295636
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号