如何锁定 matplotlib 窗口大小调整

Mat*_*tie 4 python matplotlib

我正在开发一个开源项目,该项目涉及使用matplotlib中的 pyplot 进行鼠标交互(通过mpl_connect)与散点图。我能够禁用底部工具栏的显示:

matplotlib.rcParams['toolbar'] = 'None'
Run Code Online (Sandbox Code Playgroud)

但我还没有找到类似的东西来锁定窗口的宽度/高度并禁用调整大小。(目前,可点击区域是在启动时计算的,并且如果调整窗口大小,则不会更改。)有没有办法暂时禁用调整大小,直到我实现允许调整大小而不会中断的版本?

use*_*737 5

Matplotlib 支持多个后端。要查看您正在使用什么后端(我有TkAgg):

>>> pyplot.get_backend()
u'TkAgg'
Run Code Online (Sandbox Code Playgroud)

GTKAgg后端可以是, GTK3Agg, GTK, GTKCairo, GTK3Cairo, WXAgg, WX, TkAgg, Qt4Agg, Qt5Agg,之一macosx(请参阅http://matplotlib.org/faq/usage_faq.html#what-is-a-backend)。

通过后端,您可以使用(http://www.tkdocs.com/tutorial/windows.htmlTkAgg阻止窗口调整宽度和高度大小 resizable(False, False)

from matplotlib import pyplot

bck = pyplot.get_backend()
print "Backend is " + bck
mng = pyplot.get_current_fig_manager()
if (bck == "TkAgg"):   
    mng.window.resizable(False, False)
elif (bck == "QT4Agg"):
    print "See previous answer"
else:
    print "?"
Run Code Online (Sandbox Code Playgroud)

如果您安装了所需的软件包,您可以使用例如切换后端

>>> pyplot.switch_backend('QT4Agg')
Run Code Online (Sandbox Code Playgroud)