[IPython-User] Subplot legend not working on embedded plots?

Adam Hughes hughesadam87@gmail....
Wed Jul 25 13:43:36 CDT 2012


Oops.

Sorry Matthias, I'm being sloppy.  I didn't mention that although I'm
passing a 1-d array for x, I'm actually passing a multi-dimensional array
for y.  In fact, I'm just passing a pandas dataframe object.  Therefore, if
I have a dataframe of 6 lines for example, when I do ax.plot(x,y) I get 6
plots out.  What I'd like to do is pass the labels of all six of these
lines in as well in the form of a list.

I didn't realize this until your example, but I suppose I could just plot
the lines one at a time and pass in the labels in each iteration.  For
example:

for i in y:
    ax.plot(x, y[i], label=index[i])

But there has to be a way to just pass a list of labels into a
multilineplot all at once.  I realize now that my issue is now with pyplot
and not with IPython, so thanks for your help!

On Wed, Jul 25, 2012 at 2:38 PM, Matthias BUSSONNIER <
bussonniermatthias@gmail.com> wrote:

>
> Le 25 juil. 2012 à 20:29, Adam Hughes a écrit :
>
> > Thanks.
> >
> > That does work correctly for me; however, is printing the string
> "mydata" for the name of each line.
> ... i'm not quite sure I understand what you want to do...
>
> fig, ax=plt.subplots(1, figsize=(5,5) )
>
> x,y = range(10),range(10)
> ax.plot(x,y,label='mydata')
>
> x,y = range(0,10),range(1,11)
> ax.plot(x,y,label='mydata2')
>
> x,y = range(0,10),range(2,12)
> ax.plot(x,y,label='mydata3')
>
> ax.legend()
>
> give me 3 different labels
> --
> Matthias
>
> >  Do you know offhand how to get it to understand a list of strings?
>  I'll look through the matplotlib docs further.
> >
> > On Wed, Jul 25, 2012 at 2:19 PM, Matthias BUSSONNIER <
> bussonniermatthias@gmail.com> wrote:
> >
> > Le 25 juil. 2012 à 20:14, Adam Hughes a écrit :
> >
> > > Hi,
> > >
> > > I'm using notebook with inline plots:
> > >
> > > ipython notebook --pylab inline
> > >
> > > And noticed that if I create a subplot, then try to add a legend using
> ax.legend(), the legend doesn't appear.
> > >
> > > something like:
> > >
> > > fig, ax=plt.subplots(1, figsize=(12,12) )
> > > ax.plot(x,y)
> > > ax.legend()
> >
> > By setting a label in plot(), this works for me :
> >
> > fig, ax=plt.subplots(1, figsize=(5,5) )
> > x,y = range(10),range(10)
> > ax.plot(x,y,label='mydata')
> > ax.legend()
> >
> > --
> > Matthias
> >
> > >
> > >
> > > Am I doing something incorrectly or is this a known bug?
> > > _______________________________________________
> > > IPython-User mailing list
> > > IPython-User@scipy.org
> > > http://mail.scipy.org/mailman/listinfo/ipython-user
> >
> > _______________________________________________
> > IPython-User mailing list
> > IPython-User@scipy.org
> > http://mail.scipy.org/mailman/listinfo/ipython-user
> >
> > _______________________________________________
> > IPython-User mailing list
> > IPython-User@scipy.org
> > http://mail.scipy.org/mailman/listinfo/ipython-user
>
> _______________________________________________
> IPython-User mailing list
> IPython-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-user
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/ipython-user/attachments/20120725/1cf837d3/attachment.html 


More information about the IPython-User mailing list