我有两个关于mpl窗口定位的问题(使用WXAgg后端)
1-)如何创建一个最大化的窗口,而不是每次都点击窗口来最大化它?
2-)我有两个屏幕。有趣的是,我的mpl窗口往往会在我的小屏幕上打开。如何强制mpl/ipython/WX/X-windows在第二个或更大的显示器上打开mpl窗口?
谢谢。
发布于 2011-10-19 09:08:21
对于您的第一个问题,您可以在图形管理器上使用Maximize (因为图形管理器是一个FigureManagerWx实例),或者在其他后端的情况下使用等效的方法:
>>> from matplotlib import pyplot as plt
>>> plt.plot([1,2,6,4])
[<matplotlib.lines.Line2D object at 0x0000000008E5D2E8>]
>>> mng = plt.get_current_fig_manager()
>>> plt.show() # you get normal size
>>> mng.frame.Maximize(True) # now mpl window maximizes对于第二个问题,我不确定(我不能测试它),但是如果这个问题可以通过在两个显示器上扩展的屏幕上设置你的图形的位置来解决,那么你可以使用SetPosition (同样对于wxAgg后端):
>>> mng.frame.SetPosition(*args, **kwargs)发布于 2012-09-27 22:29:39
我使用Tk库进行绘图,您可以在默认情况下在~/.matplotlib/matplotlibrc文件中设置,方法是:
backend : TkAgg这使我可以使用以下命令设置窗口位置和尺寸:
import matplotlib.pyplot as plot
wm = plot.get_current_fig_manager()
wm.window.wm_geometry("800x900+50+50")因为可能有人想在Mac上定位matplotlib窗口,所以我想做一个快速的贡献。我经常使用和不使用外部屏幕(在工作和家里),并且想要一些自动使用外部屏幕的方法(如果它可用)。幸运的是,Mac操作系统必须能够通过AppKit进行接口。
下面的代码片段将返回一个包含位置、宽度和高度的ScreenInfo对象列表:
from AppKit import NSScreen
class ScreenInfo:
pass
def getScreensInfo():
screens = []
for i, s in enumerate(NSScreen.screens()):
screen = ScreenInfo()
frame = s.frame()
screen.x = frame.origin.x
screen.y = frame.origin.y
screen.w = frame.size.width
screen.h = frame.size.height
screens.append(screen)
return screenshttps://stackoverflow.com/questions/7802366
复制相似问题