2009-11-05 93 views
8

我们可以控制Matplotlib在屏幕上的位置吗?使用Matplotlib的多个图形排列

我想生成四个数字(在四个独立的窗口),不重叠。

+0

多一点信息会有帮助。什么OS?我认为在一个图上有四个轴是不够的。但为什么?什么使四个独立的窗口更可取?你需要这些情节是互动/动画吗? – Paul 2009-11-05 02:41:19

回答

0

单独使用show()和Matplotlib。最简单的解决方案可能是使用savefig(..)并使用您最喜欢的操作系统映像查看器。如果您需要与地块互动,Matplotlib提供backends

0

我所知道的最简单的方法是在首选的GUI应用程序中为图形创建窗口,然后将matplotlib图放入此窗口。有很多关于如何使用不同的GUI框架嵌入的例子here

代码示例看起来有点复杂,但它主要是样板,您只需要修改几行代码即可。

8

IPython你可以做到以下几点:

figure() 
get_current_fig_manager().window.wm_geometry("400x600+20+40") 

或等价的Python脚本:

import pylab as pl 
pl.figure() 
pl.get_current_fig_manager().window.wm_geometry("400x600+20+40") 
pl.show() 

注意,这里假设你正在使用的TkAgg后端。

+0

这正是我所需要的。谢谢。我在脚本前面添加了以下两行代码,以使其在Mac中工作:>>> import matplotlib; >>> matplotlib.use('TkAgg') – David 2009-11-06 17:46:04

+0

+1:很了解(并且比我的建议更好)。 – tom10 2009-11-07 02:03:49

+2

如果这是您的正确答案,请将其标记为已接受。 – 2009-11-14 16:51:30

3

也可以使用IPython的接口与Qt的后端,实现了类似的结果:

import matplotlib 
import pylab as pl 
f1 = pl.figure() 
f_manager = pl.get_current_fig_manager() 
f_manager.window.move(600, 600) 
pl.show() 

随着f_manager你基本上有一个PyQt4的对象,允许你为你喜欢修改窗口属性。