如何在ImageGrid的每个子图中添加标题,并为整个图设置单独的xlabel/ylabel?

5

我使用 mpl_toolkits.axes_grid1 创建了以下图表:

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()

附言:享受网格幻象

1个回答

7
如果您想为每个子图设置标题,可以使用该轴的标题命令。在原有代码中:
title('Subject {0} in-Trial Gaze'.format(subnum))

只需编写:

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

如果你想要一个大的xlabelylabel,你需要在你的网格周围创建一个大的axes对象。我不是专家,但这应该会有所帮助:

使用一个坐标轴标签的多个子图


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接