octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #52700] plotyy legend in reverse order


From: Rik
Subject: [Octave-bug-tracker] [bug #52700] plotyy legend in reverse order
Date: Wed, 20 Dec 2017 12:26:43 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0

Update of bug #52700 (project octave):

                  Status:                    None => Fixed                  
             Open/Closed:                    Open => Closed                 

    _______________________________________________________

Follow-up Comment #5:

I also agree that the script is confusing becasue there are 5 line objects for
labeling spread across two axes.  I re-wrote the script to be a little clearer
and avoid greating the initial two line objects in the plotyy command.


x=0:.01:2*pi;
sine=sin(x);
cosine=cos(x);

figure
#[AX,H1,H2]=plotyy([0 2*pi],[0 0], [0 2*pi],[0 0]);   # original
[AX,H1,H2]=plotyy(x, sine, x, 1.1*sine);
hold on
#plot(x,sine,'parent',AX(1),'b','linewidth',2);       # original
set (H1, 'color','b', 'linewidth', 2);
#plot(x,cosine,'parent',AX(1),'r','linewidth',2);     # original
plot (AX(1), x,cosine, 'r', 'linewidth', 2);
#plot(x,1.1*sine,'parent',AX(2),'g:','linewidth',1);  # original
set (H2, 'color', 'g', 'linestyle', ':', 'linewidth', 1);

leg=legend(AX(1),'sine','cosine');
set(leg,'location','northeast');


This is attached as file tst_plotyy2.m.

Note that on 4.2.1 the new script no longer puts a thin line into the legend,
but the legend objects are reversed such that the sine label is on the cosine
color and vice versa.  On the development branch this has been fixed and
everything works correctly.  For that reason I'm going to mark this report as
fixed and close it.

Also, even in 4.2.1 you can get this to work by simply being explicit about
what you want.  If you know the particular objects you want to label, just
tell the legend function what those are, rather than having it try to guess,
and guess incorrectly.

In this case, the handle for the sine plot is already in H1 so change the
cosine plot command to make sure you capture the handle


H3 = plot (AX(1), x,cosine, 'r', 'linewidth', 2);


And then when you call legend give it the objects you want to label


leg=legend([H1, H3], 'sine', 'cosine');




(file #42691)
    _______________________________________________________

Additional Item Attachment:

File name: tst_plotyy2.m                  Size:0 KB


    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?52700>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]