matplotlib更改窗口圖標(biāo)的方法示例
matplotlib窗口圖標(biāo)默認(rèn)是matplotlib的標(biāo)志,如果想修改怎么改呢?
由于我選擇的matplotlib后端是PyQT5,直接查看matplotlib.backends.backend_qt5模塊源碼。
原理
查看源碼可知,窗口圖標(biāo)功能定義在FigureManagerQT類中,設(shè)置的默認(rèn)圖標(biāo)是mpl-data\images\matplotlib.svg。
FigureManagerQT的父類是FigureManagerBase,其功能是作為容器隔離matplotlib圖像和后端實(shí)現(xiàn)的窗口,并與窗口進(jìn)行交互,它會(huì)自動(dòng)適配matplotlib選用的后端。
這樣只用找到當(dāng)前圖像中FigureManagerQT類的實(shí)例(即當(dāng)前圖像的圖像管理器)后調(diào)用setWindowIcon方法即可完成窗口圖標(biāo)的更改。
獲取當(dāng)前圖像的圖像管理器有兩種寫法,因此,更改窗口圖標(biāo)的實(shí)現(xiàn)有兩種。
根據(jù)matplotlib.pyplot.get_current_fig_manager()函數(shù)源碼可知這兩種方法是等價(jià)的。
實(shí)現(xiàn)代碼
import matplotlib.pyplot as plt from PyQt5 import QtGui plt.plot([1,2]) # 構(gòu)建圖標(biāo) PATH_TO_ICON = r"c:\quit.png" new_icon = QtGui.QIcon(PATH_TO_ICON) # 方法一:使用figure.canvas.manager獲取當(dāng)前圖像的`FigureManagerQT`類實(shí)例 fig =plt.gcf() fig.canvas.manager.window.setWindowIcon(QtGui.QIcon(new_icon)) # 方法二:使用plt.get_current_fig_manager()獲取當(dāng)前圖像的`FigureManagerQT`類實(shí)例 plt.get_current_fig_manager().window.setWindowIcon(new_icon) plt.show()
matplotlib源碼
class FigureManagerQT(FigureManagerBase): """ Attributes ---------- canvas : `FigureCanvas` The FigureCanvas instance num : int or str The Figure number toolbar : qt.QToolBar The qt.QToolBar window : qt.QMainWindow The qt.QMainWindow """ def __init__(self, canvas, num): FigureManagerBase.__init__(self, canvas, num) self.window = MainWindow() self.window.closing.connect(canvas.close_event) self.window.closing.connect(self._widgetclosed) self.window.setWindowTitle("Figure %d" % num) image = str(cbook._get_data_path('images/matplotlib.svg')) self.window.setWindowIcon(QtGui.QIcon(image))
def get_current_fig_manager(): return gcf().canvas.manager
到此這篇關(guān)于matplotlib更改窗口圖標(biāo)的方法示例的文章就介紹到這了,更多相關(guān)matplotlib更改窗口圖標(biāo)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python matplotlib坐標(biāo)軸設(shè)置的方法
- Python設(shè)置matplotlib.plot的坐標(biāo)軸刻度間隔以及刻度范圍
- python使用matplotlib繪制柱狀圖教程
- python學(xué)習(xí)之matplotlib繪制散點(diǎn)圖實(shí)例
- 用matplotlib畫等高線圖詳解
- python Matplotlib畫圖之調(diào)整字體大小的示例
- Python使用matplotlib繪制動(dòng)畫的方法
- python繪圖庫Matplotlib的安裝
- Python實(shí)現(xiàn)matplotlib顯示中文的方法詳解
- Python繪圖Matplotlib之坐標(biāo)軸及刻度總結(jié)
- Python+matplotlib繪制不同大小和顏色散點(diǎn)圖實(shí)例
相關(guān)文章
Python序列對(duì)象與String類型內(nèi)置方法詳解
這篇文章主要介紹了Python序列對(duì)象與String類型內(nèi)置方法,結(jié)合實(shí)例形式分析了Python序列對(duì)象與String類型各種常見內(nèi)置方法相關(guān)使用技巧及操作注意事項(xiàng),需要的朋友可以參考下2019-10-10詳解利用上下文管理器擴(kuò)展Python計(jì)時(shí)器
本文將和大家一起了解什么是上下文管理器?和?Python?的?with?語句,以及如何完成自定義。然后擴(kuò)展?Timer?以便它也可以用作上下文管理器,感興趣的可以了解一下2022-06-06詳解如何在Apache中運(yùn)行Python WSGI應(yīng)用
在生產(chǎn)環(huán)境上,一般會(huì)使用比較健壯的Web服務(wù)器,如Apache來運(yùn)行我們的應(yīng)用,本文中我們就會(huì)介紹如何使用Apache模塊mod_wsgi來運(yùn)行Python WSGI應(yīng)用。感興趣的小伙伴們可以參考一下2019-01-01對(duì)Python中的@classmethod用法詳解
下面小編就為大家分享一篇對(duì)Python中的@classmethod用法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-04-04一文詳解Python灰色預(yù)測(cè)模型實(shí)現(xiàn)示例
這篇文章主要為大家介紹了Python灰色預(yù)測(cè)模型實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Python使用低通濾波器模糊圖像功能實(shí)現(xiàn)
這篇文章主要介紹了Python使用低通濾波器模糊圖像,我們介紹了多種不同類型的濾波器核與卷積操作,使用 scipy.ndimage 模塊中的濾波器模糊圖像,利用 scipy.fftpack 模塊的 fft2() 函數(shù)實(shí)現(xiàn)高斯模糊,介紹了scipy.signal模塊的彩色圖像頻域卷積,需要的朋友可以參考下2023-03-03PYQT5開啟多個(gè)線程和窗口,多線程與多窗口的交互實(shí)例
今天小編就為大家分享一篇PYQT5開啟多個(gè)線程和窗口,多線程與多窗口的交互實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-12-12Python Tornado框架輕松寫一個(gè)Web應(yīng)用的全過程
Tornado全稱Tornado Web Server,是一個(gè)用Python語言寫成的Web服務(wù)器兼Web應(yīng)用框架,Tornado走的是少而精的方向,注重的是性能優(yōu)越,它最出名的是異步非阻塞的服務(wù)器方式,這篇文章主要給大家介紹了關(guān)于Python Tornado框架輕松寫一個(gè)Web應(yīng)用的相關(guān)資料,需要的朋友可以參考下2021-08-08Pytorch技巧:DataLoader的collate_fn參數(shù)使用詳解
今天小編就為大家分享一篇Pytorch技巧:DataLoader的collate_fn參數(shù)使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01Tensorflow卷積實(shí)現(xiàn)原理+手寫python代碼實(shí)現(xiàn)卷積教程
這篇文章主要介紹了Tensorflow卷積實(shí)現(xiàn)原理+手寫python代碼實(shí)現(xiàn)卷積教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05