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繪圖庫(kù)Matplotlib的安裝
- Python實(shí)現(xiàn)matplotlib顯示中文的方法詳解
- Python繪圖Matplotlib之坐標(biāo)軸及刻度總結(jié)
- Python+matplotlib繪制不同大小和顏色散點(diǎn)圖實(shí)例