• 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入门到放弃
    伯俊ERP与金蝶云星空对接集成表头表体组合查询连通分布式调出单新增(调拨出库对接分布式调出(KD调拨)6月)
    每日一题 2609. 最长平衡子字符串(简单)
    Ansible 常用模块
    Kafka入门05——基础知识
    A. Compare T-Shirt Sizes
    学习记录:VS2019+OpenCV3.4.1实现SURF库函数的调用
    动手学深度学习(Pytorch版)代码实践 -卷积神经网络-15参数管理
    Spring中Endpoint、HasFeatures、NamedFeature和Actuator的关系及实现原理
    如何使用FME开发自动化分析报告功能
  • 原文地址:https://blog.csdn.net/caoyanchao1/article/details/136295636