On 31 Oct 2018, at 08:30, Joe Kington <joferkington at gmail.com> wrote:
If you're okay with a fixed figure size, you can use plt.figaspect to set this up fairly easily: (i.e. this will be incorrect as soon as you resize the plot window)
import numpy as np
import matplotlib.pyplot as plt
nrows, ncols = 8, 12
dx, dy = 1, 2
figsize = plt.figaspect(float(dy * nrows) / float(dx * ncols))
fig, axes = plt.subplots(nrows, ncols, figsize=figsize)
for ax in axes.flat:
data = np.random.random((10*dy, 10*dx))
ax.imshow(data, interpolation='none', cmap='gray')
ax.set(xticks=, yticks=)
pad = 0.05 # Padding around the edge of the figure
xpad, ypad = dx * pad, dy * pad
fig.subplots_adjust(left=xpad, right=1-xpad, top=1-ypad, bottom=ypad)
plt.show()
(From here, for reference: python - Changing aspect ratio of subplots in matplotlib - Stack Overflow )
If you need the spacing to remain constant as the figure size changes, it's possible, but more complex. You may find it's easiest to use draw callbacks in that case.
Hope that helps,
-Joe
On Tue, Oct 30, 2018 at 4:44 PM Daniele Nicolodi <daniele at grinta.net <mailto:daniele at grinta.net>> wrote:
Hello,
I would like to arrange a number of square subplots (as in subplots with
square axes as obtained with `ax.axis('equal')`) in a grid such that the
distance between rows and columns is exactly the same.
I can use a GridSpec but, as soon as I ask for the axes to be square,
the distance between axes changes. Is there a way to enforce the equal
distances constrain (namely stretch the padding between the axes and the
margin of the figure but do not stretch the padding between axes) or the
only solution is to do it manually?
Thank you in advance.
Best,
Dan
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users at python.org <mailto:Matplotlib-users at python.org>
Matplotlib-users Info Page
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users at python.org
Matplotlib-users Info Page