[Matplotlib-users] Axes array for subplots
Slavin, Jonathan
jslavin at cfa.harvard.edu
Tue Apr 17 11:33:36 EDT 2018
Virgil,
What is ax in your example? When I do
fig,axarr = plt.subplots(1,squeeze=False,sharex=True)
I get axarr is an array of shape (1,1). An array does not have an
attribute grid.
Jon
>
> Date: Tue, 17 Apr 2018 17:14:28 +0200
> From: Virgil Stokes <vs at it.uu.se>
> To: Benjamin Root <ben.v.root at gmail.com>,
> <matplotlib-users at python.org>
> Subject: Re: [Matplotlib-users] Axes array for subplots
> Message-ID: <951bcfd1-e953-17e3-9350-caec6231ab00 at it.uu.se>
> Content-Type: text/plain; charset="utf-8"; Format="flowed"
>
> Ok Ben,
>
> I tried the following per your suggestion:
>
> fig, axarr = plt.subplots(NSub, figsize=(width,height), squeeze=False,
> sharex=True)
>
> but when the following is executed:
>
> ? ax.grid(True)
>
> I get the following error message:
> ? builtins.AttributeError: 'numpy.ndarray' object has no attribute 'grid'
>
> But, thanks for your help :-).
>
>
> On 2018-04-17 16:30, Benjamin Root wrote:
> > 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.
> >
> > I hope that helps!
> > Ben Root
> >
> >
> > On Tue, Apr 17, 2018 at 10:12 AM, Virgil Stokes <vs at it.uu.se
> > <mailto:vs at it.uu.se>> wrote:
> >
> > 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:
> >
> > fig, axarr = plt.subplots(NSub, figsize=(width,height), sharex=True)
> >
> > 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:
> >
> > array([<matplotlib.axes._subplots.AxesSubplot object at
> > 0x0000025900E9DDD8>,
> > ???????? <matplotlib.axes._subplots.AxesSubplot object at
> > 0x00000259011897F0>,
> > ???????? <matplotlib.axes._subplots.AxesSubplot object at
> > 0x00000259011C7128>],
> > ??????? dtype=object)
> >
> > However, when NSub=1, axarr contains:
> >
> > <matplotlib.axes._subplots.AxesSubplot object at 0x00000161AB26AE80>
> >
> > and of course, will give an error if axarr is an array; i.e.
> >
> > builtins.TypeError: 'AxesSubplot' object does not support indexing
> >
> > For my code this requires special handling because axarr is no
> > longer an array. Why not have axarr contain:
> >
> > array([<matplotlib.axes._subplots.AxesSubplot object at
> > 0x00000161AB26AE80>],dtype=object)
> >
> > when NSub=1. IMHO this is consistent; i.e. it is an array with a
> > length that is equal to the number of subplots.
> >
> > _______________________________________________
> > Matplotlib-users mailing list
> > Matplotlib-users at python.org <mailto:Matplotlib-users at python.org>
> > https://mail.python.org/mailman/listinfo/matplotlib-users
> > <https://mail.python.org/mailman/listinfo/matplotlib-users>
> >
> >
>
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <http://mail.python.org/pipermail/matplotlib-users/
> attachments/20180417/ced451e1/attachment.html>
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users at python.org
> https://mail.python.org/mailman/listinfo/matplotlib-users
>
>
> ------------------------------
>
> End of Matplotlib-users Digest, Vol 33, Issue 10
> ************************************************
>
--
________________________________________________________
Jonathan D. Slavin Harvard-Smithsonian CfA
jslavin at cfa.harvard.edu 60 Garden Street, MS 83
phone: (617) 496-7981 Cambridge, MA 02138-1516
cell: (781) 363-0035 USA
________________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/matplotlib-users/attachments/20180417/335d186b/attachment-0001.html>
More information about the Matplotlib-users
mailing list