2013-03-16 92 views
3

我创建使用mpl_toolkits.axes_grid1如下图所示:如何为ImageGrid中的每个子区域添加标题并为整个图形添加单个xlabel/ylabel?

enter image description here

出于某种原因,但是,我的插曲标题没有出现。我怎样才能解决这个问题?

代码:

# import 
from mpl_tookits.axes_grid1 import ImageGrid 
from matplotlib.pyplot import * 

fig = figure(figsize=(20, 12), dpi=300) 
grid = ImageGrid(fig, 111, nrows_ncols=(3, 4), axes_pad=1, aspect=False) 
for gridax, (i, sub) in zip(grid, enumerate(eyelink_data)): 
    subnum = i + start_with 

    # format data 
    xdat = sub['x'][(sub['in_trl'] == True) & (sub['x'].notnull()) & (sub['y'].notnull())] 
    ydat = sub['y'][(sub['in_trl'] == True) & (sub['x'].notnull()) & (sub['y'].notnull())] 

    # plot 
    gridax.hist2d(xdat, ydat, bins=[np.linspace(-.005, .005, num=1000), np.linspace(-.005, .005, num=1000)]) 
    gridax.plot(0, 0, 'ro') # origin 

    title('Subject {0} in-Trial Gaze'.format(subnum)) 
    xlabel('Horizontal Offset\n(degrees visual angle)') 
    ylabel('Vertical Offset\n(degrees visual angle)') 

show() 

P.S:享受grid illusion

回答

4

如果您想为每个子图绘制一个标题,您可以对该轴使用title命令。当您有:

title('Subject {0} in-Trial Gaze'.format(subnum)) 

只要写:

gridax.set_title('Subject {0} in-Trial Gaze'.format(subnum)) 

如果你想要一个大xlabelylabel,你必须让你的网格在一个大axes对象。我不是专家,但这应该有帮助:

Multiple Subplots with One Axis Label

相关问题