如何使用matplotlib设置图形窗口的绝对位置?
问题内容:
我正在编写一个简单的Python应用程序,该应用程序使用matplotlib在屏幕上显示一些数字。生成的图形数量基于用户输入以及应用程序整个生命周期中的变化。用户可以发出“绘图”命令来生成带有所选数据系列的新图形窗口。为了改善用户体验,我想提供另一个命令,该命令将以编程方式将所有打开的图形窗口以某种方便的方式排列(例如,将它们平铺在可用的屏幕空间上)。
我相信已经找到了允许我调整图形窗口大小(以像素为单位)的API,但是在找到一种方法来设置它们在屏幕上的绝对位置方面并没有取得任何成功。是否有办法做到这一点而无需深入研究正在使用的任何后端的细节?我想以与后端无关的方式执行此操作,这样我就可以避免依赖将来可能会更改的实现细节。
问题答案:
并不是我不知道与后端无关的方法来执行此操作,但是绝对可以对某些常见的后端执行此操作,例如WX,tkagg等。
import matplotlib
matplotlib.use("wx")
from pylab import *
figure(1)
plot([1,2,3,4,5])
thismanager = get_current_fig_manager()
thismanager.window.SetPosition((500, 0))
show()
每个@tim在下面的评论部分,您可能想要切换到
thismanager.window.wm_geometry("+500+0")
代替。对于TkAgg
,只需将其更改为
thismanager.window.wm_geometry("+500+0")
因此,我认为,如果不能选择强加某个后端,那么您可以耗尽所有能够做到这一点的后端。