在Windows上的Python,打开彼此相邻的绘图窗口

时间:2015-07-15 09:13:15

标签: python matplotlib plot enthought

我在windows7上使用EPD-python2.7。在我的python程序中,我最终在单独的绘图窗口中创建了4-5个数字。默认情况下,绘图窗口堆叠在一起。每次我必须拖动并更换每个窗口并分布在屏幕区域。

(Q1)有没有办法自动设置它以创建彼此相邻的绘图窗口?如下图所示(它是我的第二个外部屏幕的屏幕截图)。

(Q2)我有第二个(额外)屏幕,理想情况下,我希望每次运行程序enter image description here

时,第二个屏幕都会创建彼此相邻的绘图窗口

2 个答案:

答案 0 :(得分:3)

您可以选择地块的位置,但这取决于后端。要检查一下,

import matplotlib.pyplot as plt

#Choose the correct dimensions for your first screen
FMwidth = 1280
FMheight = 1024

#Choose the correct dimensions for your second screen
SMwidth = 1280
SMheight = 1024

fm = plt.get_current_fig_manager()
#Works with QT on linux 
fm.window.setGeometry(FMwidth,0,SMwidth,SMheight)

然后看combining them答案,了解各种调整方法。 例如,这适用于我在linux上使用fm.window.wm_geometry("+500+0")

from win32api import GetSystemMetrics

width = GetSystemMetrics(0)
weight = GetSystemMetrics(1)

对于Windows来说这可能更好

#Setup 2 by 3 grid of subplots
fig, axs = plt.subplots(2,3,figsize=(width,height))

axs[0,0].plot(x, np.sinc(x))
axs[1,0].hist(y)
etc

您也可以获得屏幕尺寸this

{{1}}

您可以轻松创建一个计数器,该计数器会在您创建绘图时递增并调整此指定位置,以便下一个绘图每次都与上一个绘图相邻。但是,如果使用子图,大小和布局会更容易,例如设置2乘3网格,

{{1}}

然后,您可以使用计数器指定当前使用的绘图,并在绘制时增加此值。

答案 1 :(得分:1)

我有同样的问题。当我查看答案时,对我来说不明显的是,当你有第二台显示器时,你可以通过使用相对于你的第一台显示器的坐标来实现它。例如,我的1080p主显示器上方有一个4k显示器,我通过使用y位置的负值将数字放在上面。

mgr = plt.get_current_fig_manager()
mgr.window.move(-400,-2000)
plt.show()

显然它知道我的Windows显示器安排。