<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Daniele,<div class=""><br class=""></div><div class="">This is also explicitly the use-case that `axes_grid1` toolkit is meant for.   I’m trying to move as much axes_grid1 stuff out of the toolkit into the main code as possible, but what you want is orthogonal to how layout managers that are currently in matplotlib work, so axes_grid1 is still useful here. </div><div class=""><br class=""></div><div class=""><a href="https://matplotlib.org/gallery/axes_grid1/simple_axesgrid.html" class="">https://matplotlib.org/gallery/axes_grid1/simple_axesgrid.html</a></div><div class=""><br class=""></div><div class="">Cheers,  Jody<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 31 Oct 2018, at 08:30, Joe Kington <<a href="mailto:joferkington@gmail.com" class="">joferkington@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class="">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)</div><div style="margin-left:40px" class=""><br class=""></div><div class=""><pre class="gmail-prettyprint gmail-lang-py gmail-prettyprinted" style="margin-left:40px"><code class=""><span class="gmail-kwd">import</span><span class="gmail-pln"> numpy </span><span class="gmail-kwd">as</span><span class="gmail-pln"> np
</span><span class="gmail-kwd">import</span><span class="gmail-pln"> matplotlib</span><span class="gmail-pun">.</span><span class="gmail-pln">pyplot </span><span class="gmail-kwd">as</span><span class="gmail-pln"> plt

nrows</span><span class="gmail-pun">,</span><span class="gmail-pln"> ncols </span><span class="gmail-pun">=</span><span class="gmail-pln"> </span><span class="gmail-lit">8</span><span class="gmail-pun">,</span><span class="gmail-pln"> </span><span class="gmail-lit">12</span><span class="gmail-pln">
dx</span><span class="gmail-pun">,</span><span class="gmail-pln"> dy </span><span class="gmail-pun">=</span><span class="gmail-pln"> </span><span class="gmail-lit">1</span><span class="gmail-pun">,</span><span class="gmail-pln"> </span><span class="gmail-lit">2</span><span class="gmail-pln">
figsize </span><span class="gmail-pun">=</span><span class="gmail-pln"> plt</span><span class="gmail-pun">.</span><span class="gmail-pln">figaspect</span><span class="gmail-pun">(</span><span class="gmail-pln">float</span><span class="gmail-pun">(</span><span class="gmail-pln">dy </span><span class="gmail-pun">*</span><span class="gmail-pln"> nrows</span><span class="gmail-pun">)</span><span class="gmail-pln"> </span><span class="gmail-pun">/</span><span class="gmail-pln"> float</span><span class="gmail-pun">(</span><span class="gmail-pln">dx </span><span class="gmail-pun">*</span><span class="gmail-pln"> ncols</span><span class="gmail-pun">))</span><span class="gmail-pln">

fig</span><span class="gmail-pun">,</span><span class="gmail-pln"> axes </span><span class="gmail-pun">=</span><span class="gmail-pln"> plt</span><span class="gmail-pun">.</span><span class="gmail-pln">subplots</span><span class="gmail-pun">(</span><span class="gmail-pln">nrows</span><span class="gmail-pun">,</span><span class="gmail-pln"> ncols</span><span class="gmail-pun">,</span><span class="gmail-pln"> figsize</span><span class="gmail-pun">=</span><span class="gmail-pln">figsize</span><span class="gmail-pun">)</span><span class="gmail-pln">
</span><span class="gmail-kwd">for</span><span class="gmail-pln"> ax </span><span class="gmail-kwd">in</span><span class="gmail-pln"> axes</span><span class="gmail-pun">.</span><span class="gmail-pln">flat</span><span class="gmail-pun">:</span><span class="gmail-pln">
    data </span><span class="gmail-pun">=</span><span class="gmail-pln"> np</span><span class="gmail-pun">.</span><span class="gmail-pln">random</span><span class="gmail-pun">.</span><span class="gmail-pln">random</span><span class="gmail-pun">((</span><span class="gmail-lit">10</span><span class="gmail-pun">*</span><span class="gmail-pln">dy</span><span class="gmail-pun">,</span><span class="gmail-pln"> </span><span class="gmail-lit">10</span><span class="gmail-pun">*</span><span class="gmail-pln">dx</span><span class="gmail-pun">))</span><span class="gmail-pln">
    ax</span><span class="gmail-pun">.</span><span class="gmail-pln">imshow</span><span class="gmail-pun">(</span><span class="gmail-pln">data</span><span class="gmail-pun">,</span><span class="gmail-pln"> interpolation</span><span class="gmail-pun">=</span><span class="gmail-str">'none'</span><span class="gmail-pun">,</span><span class="gmail-pln"> cmap</span><span class="gmail-pun">=</span><span class="gmail-str">'gray'</span><span class="gmail-pun">)</span><span class="gmail-pln">
    ax</span><span class="gmail-pun">.</span><span class="gmail-pln">set</span><span class="gmail-pun">(</span><span class="gmail-pln">xticks</span><span class="gmail-pun">=[],</span><span class="gmail-pln"> yticks</span><span class="gmail-pun">=[])</span><span class="gmail-pln">

pad </span><span class="gmail-pun">=</span><span class="gmail-pln"> </span><span class="gmail-lit">0.05</span><span class="gmail-pln"> </span><span class="gmail-com"># Padding around the edge of the figure</span><span class="gmail-pln">
xpad</span><span class="gmail-pun">,</span><span class="gmail-pln"> ypad </span><span class="gmail-pun">=</span><span class="gmail-pln"> dx </span><span class="gmail-pun">*</span><span class="gmail-pln"> pad</span><span class="gmail-pun">,</span><span class="gmail-pln"> dy </span><span class="gmail-pun">*</span><span class="gmail-pln"> pad
fig</span><span class="gmail-pun">.</span><span class="gmail-pln">subplots_adjust</span><span class="gmail-pun">(</span><span class="gmail-pln">left</span><span class="gmail-pun">=</span><span class="gmail-pln">xpad</span><span class="gmail-pun">,</span><span class="gmail-pln"> right</span><span class="gmail-pun">=</span><span class="gmail-lit">1</span><span class="gmail-pun">-</span><span class="gmail-pln">xpad</span><span class="gmail-pun">,</span><span class="gmail-pln"> top</span><span class="gmail-pun">=</span><span class="gmail-lit">1</span><span class="gmail-pun">-</span><span class="gmail-pln">ypad</span><span class="gmail-pun">,</span><span class="gmail-pln"> bottom</span><span class="gmail-pun">=</span><span class="gmail-pln">ypad</span><span class="gmail-pun">)</span><span class="gmail-pln">

plt</span><span class="gmail-pun">.</span><span class="gmail-pln">show</span><span class="gmail-pun">()</span></code><br class=""></pre><pre class="gmail-prettyprint gmail-lang-py gmail-prettyprinted"><font face="arial,helvetica,sans-serif" class="">(From here, for reference: <a href="https://stackoverflow.com/questions/32633322/changing-aspect-ratio-of-subplots-in-matplotlib/32635933#32635933" class="">https://stackoverflow.com/questions/32633322/changing-aspect-ratio-of-subplots-in-matplotlib/32635933#32635933</a> )</font><br class=""></pre><pre class="gmail-prettyprint gmail-lang-py gmail-prettyprinted"><span style="font-family:arial,helvetica,sans-serif" class="">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.<br class=""></span></pre><pre class="gmail-prettyprint gmail-lang-py gmail-prettyprinted"><span style="font-family:arial,helvetica,sans-serif" class="">Hope that helps,<br class=""></span></pre><pre class="gmail-prettyprint gmail-lang-py gmail-prettyprinted"><span style="font-family:arial,helvetica,sans-serif" class="">-Joe<br class=""></span></pre></div></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Tue, Oct 30, 2018 at 4:44 PM Daniele Nicolodi <<a href="mailto:daniele@grinta.net" class="">daniele@grinta.net</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br class="">
<br class="">
I would like to arrange a number of square subplots (as in subplots with<br class="">
square axes as obtained with `ax.axis('equal')`) in a grid such that the<br class="">
distance between rows and columns is exactly the same.<br class="">
<br class="">
I can use a GridSpec but, as soon as I ask for the axes to be square,<br class="">
the distance between axes changes. Is there a way to enforce the equal<br class="">
distances constrain (namely stretch the padding between the axes and the<br class="">
margin of the figure but do not stretch the padding between axes) or the<br class="">
only solution is to do it manually?<br class="">
<br class="">
Thank you in advance.<br class="">
<br class="">
Best,<br class="">
Dan<br class="">
_______________________________________________<br class="">
Matplotlib-users mailing list<br class="">
<a href="mailto:Matplotlib-users@python.org" target="_blank" class="">Matplotlib-users@python.org</a><br class="">
<a href="https://mail.python.org/mailman/listinfo/matplotlib-users" rel="noreferrer" target="_blank" class="">https://mail.python.org/mailman/listinfo/matplotlib-users</a><br class="">
</blockquote></div>
_______________________________________________<br class="">Matplotlib-users mailing list<br class=""><a href="mailto:Matplotlib-users@python.org" class="">Matplotlib-users@python.org</a><br class="">https://mail.python.org/mailman/listinfo/matplotlib-users<br class=""></div></blockquote></div><br class=""><div class="">
<span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; font-variant-ligatures: normal; font-variant-east-asian: normal; font-variant-position: normal; line-height: normal;"><div style="word-wrap: break-word;" class=""><span class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: 'Lucida Sans Typewriter'; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px;"><div class="">--</div><div class="">Jody Klymak    </div><div class=""><a href="http://web.uvic.ca/~jklymak/" class="">http://web.uvic.ca/~jklymak/</a></div><div class=""><br class="khtml-block-placeholder"></div><div class=""><br class="khtml-block-placeholder"></div><br class="Apple-interchange-newline"></span></div></span><br class="Apple-interchange-newline">
</div>
<br class=""></div></body></html>