禁用Matplotlib工具栏。

19

有没有办法禁用/隐藏出现在底部的matplotlib工具栏?

我尝试了类似于这样的东西:

import matplotlib as mpl
mpl.rcParams['toolbar'] = 'None'

但不幸的是,那并没有起作用。


1
对我来说可以。你在用什么后端? - tiago
5个回答

26

在实例化任何图形之前,一定要调用 mpl.rcParams['toolbar'] = 'None'


3
不支持 nbagg (%matplotlib notebook) 后端。 - Taylor
1
工具栏是图形窗口顶部的那个带有缩放/平移按钮的东西,还是位于图形窗口底部的显示器,用于显示光标的x和y坐标?这些显示小部件有单独的名称吗? - cxrodgers
@Taylor 我发现在调用绘图之前使用这个CSS代码块似乎可以在使用nbagg(%matplotlib notebook)后端时移除工具栏。 - Wayne

4

如果您在使用Jupyter时使用了%matplotlib widget(ipympl) ,则可以执行以下操作:

fig.canvas.toolbar_visible = False

您也可以使用以下方式禁用页眉和页脚:

fig.canvas.header_visible = False
fig.canvas.footer_visible = False

是的,这正是我所需要的。 - endolith

1

或者,您可以隐藏工具栏:

QToolBar.hide()

或者

QToolBar.setVisible(False)

显然,这只适用于Qt后端。为了扩展这个答案,考虑图像fig:。
首先,如果使用Qt5:
from PyQt5 import QtWidgets 

否则:
from PyQt4 import QtGui as QtWidgets 

然后:

try:
    win = fig.canvas.manager.window
except AttributeError:
    win = fig.canvas.window()
toolbar = win.findChild(QtWidgets.QToolBar)
toolbar.setVisible(False)

0
进一步解释bejota的答案:
显然,这只适用于Qt后端。为了进一步解释这个答案,考虑到图fig:
首先,如果使用Qt5:
from PyQt5 import QtWidgets 

否则:
from PyQt4 import QtGui as QtWidgets 

然后:

toolbar = win.findChild(QtWidgets.QToolBar)
toolbar.setVisible(False)
try:
    win = fig.canvas.manager.window
except AttributeError:
    win = fig.canvas.window()
toolbar = win.findChild(QtWidgets.QToolBar)
toolbar.setVisible(False)

-2

你可以前往 C:\Python27\Lib\site-packages\matplotlib\mpl-data, 在那里你会看到一个名为matplotlibrc的文件,打开文件, 你会找到一行类似于:

#toolbar      : toolbar2# None | toolbar2  ("classic" is deprecated)

取消注释该行并在冒号后面放置None,如下:

toolbar      : None# None | toolbar2  ("classic" is deprecated) and save the file,

我想在使用matplotlib绘制的图表中禁用工具栏。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接