亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python將matplotlib嵌入到tkinter中的步驟詳解

 更新時(shí)間:2023年08月07日 09:36:17   作者:微小冷  
tkinter是Python標(biāo)準(zhǔn)庫(kù)中自帶的GUI工具,使用十分方便,如能將matplotlib嵌入到tkinter中,就可以做出相對(duì)專業(yè)的數(shù)據(jù)展示系統(tǒng),很有競(jìng)爭(zhēng)力,本文就給大家介紹python將matplotlib嵌入到tkinter中的方法步驟,需要的朋友可以參考下

matplotlib窗口組成

tkinter是Python標(biāo)準(zhǔn)庫(kù)中自帶的GUI工具,使用十分方便,如能將matplotlib嵌入到tkinter中,就可以做出相對(duì)專業(yè)的數(shù)據(jù)展示系統(tǒng),很有競(jìng)爭(zhēng)力。

在具體實(shí)現(xiàn)之前,可以先看一下典型的 matplotlib 窗口

import numpy as np
import matplotlib.pyplot as plt
plt.plot(np.arange(100))
plt.show()

然后就看到了我們熟悉的plot圖

plot圖

這個(gè)圖由兩部分構(gòu)成,分別是上面用于繪圖的FigureCanvasTkAgg畫布,以及下方的工具欄NavigationToolbar2Tk,二者存放在matplotlib.backends.backend_tkagg中,這兩個(gè)組件在地位上和tkinter中的組件是等同的。

但除此之外還不夠,因?yàn)楫嫴疾⒉灰馕吨袌D像,故而還要導(dǎo)入繪圖窗口Figure,故而將matplotlib嵌入到tkinter中,最少需要使用下面的這些模塊

import tkinter as tk
import tkinter.ttk as ttk
import 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 Figure
import numpy as np

其中,mpl.use(‘TkAgg’)用于啟用tkinter渲染matplotlib,從而可以嵌入到tkinter中。

tkinter布局

在了解原理之后,具體實(shí)現(xiàn)就不難了。在嵌入matplotlib之前,可先對(duì)tkinter窗口做下布局,代碼如下所示,首先創(chuàng)建一個(gè)標(biāo)題為"數(shù)據(jù)展示工具"的窗口root,并為其添加兩個(gè)控件,分別是右側(cè)的frmCtrl和左側(cè)的frmFigure,前者用于添加控件,后者用于嵌入圖像

root = tk.Tk()
root.title("數(shù)據(jù)展示工具")
frmCtrl = ttk.Frame(root, width=200)
frmCtrl.pack(side=tk.RIGHT)
frmFigure = ttk.Frame(root)
frmFigure.pack(side=tk.LEFT, fill=tk.BOTH, expand=tk.YES)

嵌入圖像

正如一開始所說(shuō)的,matplotlib的繪圖窗口由兩部分構(gòu)成,分別是繪圖畫布和工具欄,而繪圖畫布又要包含圖像,所以先創(chuàng)建一個(gè)Figure,在將其導(dǎo)入到FigureCanvasTkAgg中。

fig = Figure()
canvas = FigureCanvasTkAgg(fig,frmFigure)
canvas.get_tk_widget().pack(
    side=tk.TOP,fill=tk.BOTH,expand=tk.YES)
toolbar = NavigationToolbar2Tk(canvas,frmFigure,
    pack_toolbar=False)
toolbar.update()
toolbar.pack(side=tk.RIGHT)

其中,canvas是繪圖畫布,toolbar是工具欄。至此,就已經(jīng)完成了圖像的嵌入工作,接下來(lái)要做的,就是跑死循環(huán),從而把這個(gè)嵌入了繪圖工具的窗口顯示出來(lái)

root.mainloop()

結(jié)果如下

在這里插入圖片描述

這個(gè)圖的左側(cè)顯然就是matplotlib引入的繪圖畫布,右側(cè)則是frmCtrl,主要是為了更加清晰地證明,畫布的確嵌入到了tkinter窗口中。

如果覺(jué)得不過(guò)癮,可以在創(chuàng)建fig之后,再畫一個(gè)圖像上去,代碼如下

ax = fig.add_subplot()
ax.plot(np.arange(100))

然后再執(zhí)行root.mainloop(),就可以得到下圖

在這里插入圖片描述

到此這篇關(guān)于python將matplotlib嵌入到tkinter中的步驟詳解的文章就介紹到這了,更多相關(guān)python將matplotlib嵌入tkinter內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論