diff scripts/plot/legend.m @ 12396:6ba430a75553

Fix for legends with location southeastoutside and soutwestoutside. Pad legend position
author David Bateman <dbateman@free.fr>
date Sun, 06 Feb 2011 23:25:31 +0100
parents 4d30b4136a3e
children 735e43b75e45
line wrap: on
line diff
--- a/scripts/plot/legend.m	Sun Feb 06 16:45:05 2011 -0500
+++ b/scripts/plot/legend.m	Sun Feb 06 23:25:31 2011 +0100
@@ -553,7 +553,8 @@
           case "north"
             if (outside)
               lpos = [ca_pos(1) + (ca_pos(3) - lpos(3)) / 2, ...
-                      ca_outpos(2) + ca_outpos(4) - lpos(4), lpos(3), lpos(4)];
+                      ca_outpos(2) + ca_outpos(4) - lpos(4) - ypad, lpos(3), ...
+                      lpos(4)];
 
               new_pos = [ca_pos(1), ca_pos(2), ca_pos(3), ca_pos(4) - lpos(4)];
               new_outpos = [ca_outpos(1), ca_outpos(2), ca_outpos(3), ...
@@ -564,8 +565,8 @@
             endif
           case "south"
             if (outside)
-              lpos = [ca_pos(1) + (ca_pos(3) - lpos(3)) / 2, ca_outpos(2), ...
-                      lpos(3), lpos(4)];
+              lpos = [ca_pos(1) + (ca_pos(3) - lpos(3)) / 2, ...
+                      ca_outpos(2) + ypad, lpos(3), lpos(4)];
               new_pos = [ca_pos(1), ca_pos(2) + lpos(4), ca_pos(3), ...
                          ca_pos(4) - lpos(4)];
               new_outpos = [ca_outpos(1), ca_outpos(2) + lpos(4), ...
@@ -576,7 +577,7 @@
             endif
           case "east"
             if (outside)
-              lpos = [ca_outpos(1) + ca_outpos(3) - lpos(3), ...
+              lpos = [ca_outpos(1) + ca_outpos(3) - lpos(3) - ypad, ...
                       ca_pos(2) + (ca_pos(4) - lpos(4)) / 2, lpos(3), lpos(4)];
               new_pos = [ca_pos(1), ca_pos(2), ca_pos(3) - lpos(3), ca_pos(4)];
               new_outpos = [ca_outpos(1), ca_outpos(2), ...
@@ -587,7 +588,8 @@
             endif
           case "west"
             if (outside)
-              lpos = [ca_outpos(1), ca_pos(2) + (ca_pos(4) - lpos(4)) / 2, ...
+              lpos = [ca_outpos(1) + ypad, ...
+                      ca_pos(2) + (ca_pos(4) - lpos(4)) / 2, ...
                       lpos(3), lpos(4)];
               new_pos = [ca_pos(1) + lpos(3), ca_pos(2), ...
                          ca_pos(3) - lpos(3), ca_pos(4)];
@@ -599,7 +601,7 @@
             endif
           case "northeast"
             if (outside)
-              lpos = [ca_outpos(1) + ca_outpos(3) - lpos(3), ...
+              lpos = [ca_outpos(1) + ca_outpos(3) - lpos(3) - ypad, ...
                       ca_pos(2) + ca_pos(4) - lpos(4), lpos(3), lpos(4)];
               new_pos = [ca_pos(1), ca_pos(2), ca_pos(3) - lpos(3), ca_pos(4)];
               new_outpos = [ca_outpos(1), ca_outpos(2), ...
@@ -610,7 +612,7 @@
             endif
           case "northwest"
             if (outside)
-              lpos = [ca_outpos(1), ca_pos(2) + ca_pos(4) - lpos(4), ...
+              lpos = [ca_outpos(1) + ypad , ca_pos(2) + ca_pos(4) - lpos(4), ...
                       lpos(3), lpos(4)];
               new_pos = [ca_pos(1) + lpos(3), ca_pos(2), ...
                          ca_pos(3) - lpos(3), ca_pos(4)];
@@ -622,23 +624,23 @@
             endif
           case "southeast"
             if (outside)
-              lpos = [ca_outpos(1) + ca_outpos(3) - lpos(3), ca_pos(2), ...
-                      lpos(3), lpos(4)];
+              lpos = [ca_outpos(1) + ca_outpos(3) - lpos(3) - ypad, ...
+                      ca_pos(2), lpos(3), lpos(4)];
               new_pos = [ca_pos(1), ca_pos(2), ...
                          ca_pos(3) - lpos(3), ca_pos(4)];
-              new_outpos = [ca_outpos(1), ca_outpos(2) + lpos(4), ...
-                            ca_outpos(3) - lpos(3), ca_outpos(4) - lpos(4)];
+              new_outpos = [ca_outpos(1), ca_outpos(2), ...
+                            ca_outpos(3) - lpos(3), ca_outpos(4)];
             else
               lpos = [ca_pos(1) + ca_pos(3) - lpos(3) - ypad, ...
                       ca_pos(2) + ypad, lpos(3), lpos(4)];
             endif
           case "southwest"
             if (outside)
-              lpos = [ca_outpos(1), ca_pos(2), lpos(3), lpos(4)];
+              lpos = [ca_outpos(1) + ypad, ca_pos(2), lpos(3), lpos(4)];
               new_pos = [ca_pos(1) + lpos(3), ca_pos(2), ...
                          ca_pos(3) - lpos(3), ca_pos(4)];
-              new_outpos = [ca_outpos(1) + lpos(3), ca_outpos(2) + lpos(4), ...
-                            ca_outpos(3) - lpos(3), ca_outpos(4) - lpos(4)];
+              new_outpos = [ca_outpos(1) + lpos(3), ca_outpos(2), ...
+                            ca_outpos(3) - lpos(3), ca_outpos(4)];
             else
               lpos = [ca_pos(1) + ypad, ca_pos(2) + ypad, lpos(3), lpos(4)];
             endif