工作室网站免费建设,快三网站建设,wordpress博客网站多少钱,电子商务网站建设分析文章目录 matplotlib窗口组成tkinter布局嵌入图像 matplotlib窗口组成
tkinter是Python标准库中自带的GUI工具#xff0c;使用十分方便#xff0c;如能将matplotlib嵌入到tkinter中#xff0c;就可以做出相对专业的数据展示系统#xff0c;很有竞争力。
在具体实现之前使用十分方便如能将matplotlib嵌入到tkinter中就可以做出相对专业的数据展示系统很有竞争力。
在具体实现之前可以先看一下典型的matplotlib窗口
import numpy as np
import matplotlib.pyplot as pltplt.plot(np.arange(100))
plt.show()然后就看到了我们熟悉的plot图 这个图由两部分构成分别是上面用于绘图的FigureCanvasTkAgg画布以及下方的工具栏NavigationToolbar2Tk二者存放在matplotlib.backends.backend_tkagg中这两个组件在地位上和tkinter中的组件是等同的。
但除此之外还不够因为画布并不意味着有图像故而还要导入绘图窗口Figure故而将matplotlib嵌入到tkinter中最少需要使用下面的这些模块
import tkinter as tk
import tkinter.ttk as ttkimport matplotlib as mpl
mpl.use(TkAgg) # 启用tkinter渲染matplotlib从而可以嵌入到tkinter中
import matplotlib.pyplot as plt
from matplotlib.backends.backend_tkagg import (FigureCanvasTkAgg, NavigationToolbar2Tk)
from matplotlib.figure import Figureimport numpy as np其中mpl.use(‘TkAgg’)用于启用tkinter渲染matplotlib从而可以嵌入到tkinter中。
tkinter布局
在了解原理之后具体实现就不难了。在嵌入matplotlib之前可先对tkinter窗口做下布局代码如下所示首先创建一个标题为数据展示工具的窗口root并为其添加两个控件分别是右侧的frmCtrl和左侧的frmFigure前者用于添加控件后者用于嵌入图像
root tk.Tk()
root.title(数据展示工具)
frmCtrl ttk.Frame(root, width200)
frmCtrl.pack(sidetk.RIGHT)frmFigure ttk.Frame(root)
frmFigure.pack(sidetk.LEFT, filltk.BOTH, expandtk.YES)嵌入图像
正如一开始所说的matplotlib的绘图窗口由两部分构成分别是绘图画布和工具栏而绘图画布又要包含图像所以先创建一个Figure在将其导入到FigureCanvasTkAgg中。
fig Figure()
canvas FigureCanvasTkAgg(fig,frmFigure)
canvas.get_tk_widget().pack(sidetk.TOP,filltk.BOTH,expandtk.YES)
toolbar NavigationToolbar2Tk(canvas,frmFigure,pack_toolbarFalse)
toolbar.update()
toolbar.pack(sidetk.RIGHT)其中canvas是绘图画布toolbar是工具栏。至此就已经完成了图像的嵌入工作接下来要做的就是跑死循环从而把这个嵌入了绘图工具的窗口显示出来
root.mainloop()
结果如下 这个图的左侧显然就是matplotlib引入的绘图画布右侧则是frmCtrl主要是为了更加清晰地证明画布的确嵌入到了tkinter窗口中。
如果觉得不过瘾可以在创建fig之后再画一个图像上去代码如下
ax fig.add_subplot()
ax.plot(np.arange(100))然后再执行root.mainloop()就可以得到下图