Thanks Paul,
I think you can get the desired functionality with gridspec
alone. Take a look at
doc/users/plotting/examples/demo_gridspec06.py which you can find
here
https://github.com/matplotlib/matplotlib/blob/f1c8/doc/users/plotting/examples/demo_gridspec06.py
I've played around with this example, and it seems like I'm not quite
there yet. I should add that I'm using imshow rather than plot here.
In this case, the inter-inner-grid spacing becomes dependent on the
figure aspect ratio. I presume this is because it is trying to
maintain (as it should) the aspect ratio of the images, but it would
be nice for it do this my manipulating only the outside margins, and
honour the wspace=0., hspace=0. as requested.
Here's a simplified version of the above script to illustrate my point:
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec
import numpy as np
from itertools import product
f = plt.figure(figsize=(9, 9))
# gridspec inside gridspec
outer_grid = gridspec.GridSpec(2, 3, wspace=0.0, hspace=0.0)
for i in xrange(6):
inner_grid = gridspec.GridSpecFromSubplotSpec(3, 3,
subplot_spec=outer_grid[i], wspace=0.0, hspace=0.0)
for j, (c, d) in enumerate(product(range(1, 4), repeat=2)):
ax = plt.Subplot(f, inner_grid[j])
ax.imshow(np.ones((10,10)) * c * d, vmin=1, vmax=9)
ax.set_xticks()
ax.set_yticks()
f.add_subplot(ax)
all_axes = f.get_axes()
#show only the outside spines
for ax in all_axes:
for sp in ax.spines.values():
sp.set_visible(False)
if ax.is_first_row():
ax.spines['top'].set_visible(True)
if ax.is_last_row():
ax.spines['bottom'].set_visible(True)
if ax.is_first_col():
ax.spines['left'].set_visible(True)
if ax.is_last_col():
ax.spines['right'].set_visible(True)
plt.show()
Of course, it is relatively trivial to calculate the correct figure
aspect ratio in this case, but after adding in other elements like
labels, this can become problematic. Is it possible to specify exactly
the inner spacing, and make the outer margins automatically adjusted
to get everything to fit nicely?
Thanks,
Angus
···
On 24 March 2011 19:23, Paul Ivanov <pivanov314@...287...> wrote:
--
AJC McMorland
Post-doctoral research fellow
Neurobiology, University of Pittsburgh