以下は、matplotlib で作成した図です。問題は明らかです。ラベルが重なり合っていて、全体が判読不能です。
tight_layout
サブプロットごとに呼び出してみましたが、これにより ipython-notebook カーネルがクラッシュします。
レイアウトを修正するにはどうすればよいですか? 許容されるアプローチには、サブプロットごとに xlabel、ylabel、およびタイトルを固定することが含まれますが、別の (そしておそらくより良い) アプローチは、図全体に対して単一の xlabel、ylabel、およびタイトルを使用することです。
上記のサブプロットを生成するために使用したループは次のとおりです。
for i, sub in enumerate(datalist):
subnum = i + start_with
subplot(3, 4, i)
# format data (sub is a PANDAS dataframe)
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
hist2d(xdat, ydat, bins=1000)
plot(0, 0, 'ro') # origin
title('Subject {0} in-Trial Gaze'.format(subnum))
xlabel('Horizontal Offset (degrees visual angle)')
ylabel('Vertical Offset (degrees visual angle)')
xlim([-.005, .005])
ylim([-.005, .005])
# tight_layout # crashes ipython-notebook kernel
show()
アップデート:
オーケー、これImageGrid
でいいと思いますが、私の体型はまだ少し不安定に見えます:
使用したコードは次のとおりです。
fig = figure(dpi=300)
grid = ImageGrid(fig, 111, nrows_ncols=(3, 4), axes_pad=0.1)
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=1000)
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)')
xlim([-.005, .005])
ylim([-.005, .005])
show()