<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>ax is used in a function that references axarr. My problem is not
about 2D arrays.</p>
<p>--V<br>
</p>
<br>
<div class="moz-cite-prefix">On 2018-04-17 17:22, Benjamin Root
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CANNq6FnwQLV6kU6Jw13PhCqQuVK85QpLinLfFtf6kpjNUX_htw@mail.gmail.com">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div dir="ltr">
<div>Virgil,<br>
<br>
How did you get from `axarr` to `ax`? The error message
suggests that you haven't fully indexed the result. Remember,
with squeeze=False, `axarr` will be a 2-D array, requiring two
indices.<br>
<br>
</div>
Ben<br>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Apr 17, 2018 at 11:14 AM,
Virgil Stokes <span dir="ltr"><<a
href="mailto:vs@it.uu.se" target="_blank"
moz-do-not-send="true">vs@it.uu.se</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF">
<p>Ok Ben,</p>
<p>I tried the following per your suggestion:</p>
<p> <tt> fig, axarr = plt.subplots(NSub,
figsize=(width,height), squeeze=False, sharex=True)</tt></p>
<p>but when the following is executed:</p>
<p><tt> ax.grid(True) <br>
</tt></p>
<p>I get the following error message:<tt> </tt><br>
<tt><span
style="font-size:large;font-weight:600;color:#000066">
builtins.AttributeError: 'numpy.ndarray' object has
no attribute 'grid'</span></tt></p>
<p>But, thanks for your help <span
class="m_-6016256333781400881moz-smiley-s1"><span>:-)</span></span>.<tt><br>
</tt></p>
<div>
<div class="h5"> <br>
<div class="m_-6016256333781400881moz-cite-prefix">On
2018-04-17 16:30, Benjamin Root wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>
<div>By default, `squeeze` is called on the
array prior to returning it. This way, users
don't need to deal with 2D arrays when most of
the time, they are dealing with 1D setups. You
can specify squeeze=False to subplots to turn
this behavior off and always have a 2D array.<br>
<br>
</div>
I hope that helps!<br>
</div>
Ben Root<br>
<br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On Tue, Apr 17, 2018 at
10:12 AM, Virgil Stokes <span dir="ltr"><<a
href="mailto:vs@it.uu.se" target="_blank"
moz-do-not-send="true">vs@it.uu.se</a>></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px
#ccc solid;padding-left:1ex">
<div text="#000000" bgcolor="#FFFFFF"> The
following line is part of a much larger
python (3.6) with Matplotlib (2.2.2)
program in which the number of subplots is
determined from input data: <br>
<br>
<tt>fig, axarr = plt.subplots(NSub,
figsize=(width,height), sharex=True) </tt><br>
<br>
This works fine when the number of
subplots (NSub) is greater than 1. For
example when NSub=3, axarr is an array of
length 3 and contains: <br>
<br>
<tt> array([<matplotlib.axes._subpl<wbr>ots.AxesSubplot
object at 0x0000025900E9DDD8>, </tt><tt><br>
</tt><tt>
<matplotlib.axes._subplots.Axe<wbr>sSubplot
object at 0x00000259011897F0>, </tt><tt><br>
</tt><tt>
<matplotlib.axes._subplots.Axe<wbr>sSubplot
object at 0x00000259011C7128>], </tt><tt><br>
</tt><tt> dtype=object) </tt><br>
<br>
However, when NSub=1, axarr contains: <br>
<br>
<tt><matplotlib.axes._subplots.Axe<wbr>sSubplot
object at 0x00000161AB26AE80> <br>
<br>
and of course, will give an error if
axarr is an array; i.e.<br>
<br>
</tt><tt><span
style="font-size:large;font-weight:600;color:#000066">builtins.TypeError:
'AxesSubplot' object does not support
indexing</span> </tt><br>
<br>
For my code this requires special handling
because axarr is no longer an array. Why
not have axarr contain: <br>
<br>
<tt> array([<matplotlib.axes._subpl<wbr>ots.AxesSubplot
object at
0x00000161AB26AE80>],dtype=obj<wbr>ect)
</tt><br>
<br>
when NSub=1. IMHO this is consistent; i.e.
it is an array with a length that is equal
to the number of subplots. </div>
<br>
______________________________<wbr>_________________<br>
Matplotlib-users mailing list<br>
<a href="mailto:Matplotlib-users@python.org"
target="_blank" moz-do-not-send="true">Matplotlib-users@python.org</a><br>
<a
href="https://mail.python.org/mailman/listinfo/matplotlib-users"
rel="noreferrer" target="_blank"
moz-do-not-send="true">https://mail.python.org/mailma<wbr>n/listinfo/matplotlib-users</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</body>
</html>