18

Is there a way to disable/hide matplotlib Toolbar that shows up on the bottom?

I'd tried something like this:

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

but unfortunately that didn't work.

tacaswell
  • 84,579
  • 22
  • 210
  • 199
dimka
  • 4,301
  • 11
  • 31
  • 36

5 Answers5

25

Make sure to call mpl.rcParams['toolbar'] = 'None' before you instantiate any figures.

sodd
  • 12,482
  • 3
  • 54
  • 62
Doughy
  • 4,115
  • 6
  • 36
  • 39
  • 3
    Doesn't work for the nbagg (`%matplotlib notebook`) backend. – Taylor Aug 17 '17 at 13:11
  • 1
    Is the toolbar the thing at the top of the figure window that has the zoom/pan buttons in it, or the display at the bottom of the figure window that displays x- and y-coordinates of the cursor? Is there a separate name for these display widgets? – cxrodgers Jan 31 '18 at 22:44
  • @Taylor I found [this block of CSS code](https://stackoverflow.com/a/46735198/8508004) in call before invoking the plot seemed to remove the toolbar when using the nbagg (`%matplotlib notebook`) backend. – Wayne Mar 17 '22 at 16:10
4

If you are in Jupyter using %matplotlib widget (ipympl) you can do:

fig.canvas.toolbar_visible = False

You can also disable header and footer with:

fig.canvas.header_visible = False
fig.canvas.footer_visible = False
Paloha
  • 558
  • 6
  • 14
1

Alternatively, you can hide the toolbar:

QToolBar.hide()

or

QToolBar.setVisible(False)

Obviously this will only work with a Qt backend. To expand on this answer, given the figure fig:

First, if using Qt5:

from PyQt5 import QtWidgets 

Otherwise:

from PyQt4 import QtGui as QtWidgets 

Then:

try:
    win = fig.canvas.manager.window
except AttributeError:
    win = fig.canvas.window()
toolbar = win.findChild(QtWidgets.QToolBar)
toolbar.setVisible(False)
cbrnr
  • 1,564
  • 1
  • 14
  • 28
skytaker
  • 4,159
  • 1
  • 21
  • 31
0

To expand on bejota's answer:

Obviously this will only work with a Qt backend. To expand on this answer, given the figure fig:

First, if using Qt5:

from PyQt5 import QtWidgets 

Otherwise:

from PyQt4 import QtGui as QtWidgets 

Then:

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)
Erotemic
  • 4,806
  • 4
  • 39
  • 80
-2

you can go to C:\Python27\Lib\site-packages\matplotlib\mpl-data , there you will see the file named matplotlibrc, open the file and you will find a line like:

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

uncomment that line and place None after the colon like:

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

I guess after you can disable the toolbar in graphs plotted by matplotlib.

sodd
  • 12,482
  • 3
  • 54
  • 62
Vivek Saurav
  • 2,235
  • 4
  • 25
  • 46