MATLAB Answers

Anne Urai
0

Offset axes at origin

Asked by Anne Urai
on 30 Jul 2015
Latest activity Commented on by dpb
on 31 Jul 2015
In Python/Seaborn, there is the option to offset the x and y axis at the origin. This 'despine' pulls the x-axis down a bit, and the y-axis left, so that data that are close to either one become more visible. For example:
I can use Matlab for (almost) all figure aesthetics issues, but this seems to be only possible in Illustrator. I've searched the file exchange but haven't found any submission that does this... Does anyone have an idea of how to easily move the axes outwards while keeping the data the same?
Thanks!

  3 Comments

dpb
on 30 Jul 2015
"Easily", no, not really...it's just not an option TMW has implemented.
In Matlab you'll have to draw the two axes lines via the primitives to get the break as in the example; even if you were to add an offset to the data and tick values to move the line relative to the actual axes (and then write the tick label values) the axes would intersect where they meet.
dpb
on 30 Jul 2015
ADDENDUM Seems like a reasonable enhancement request; after all only 25+ yr after I requested for hold on to not recycle the color order counter by default they actually did!!!
dpb
on 30 Jul 2015
ADDENDUM 2 Probably the easiest thing to do with Matlab is to change the lower x/y limit to something slight less than 2/1 to thus have the actual data start slightly above/right of the axes. The tick values can still be the unit values. Again, of course, they'll still meet at the intersection.

Sign in to comment.

1 Answer

Anne Urai
Answer by Anne Urai
on 31 Jul 2015

I guessed as much. I've written a workaround for this, http://nl.mathworks.com/matlabcentral/fileexchange/52351-offsetaxes-ax--pt-

  1 Comment

dpb
on 31 Jul 2015
Nice idea to draw over the axis base line segment to make it disappear; hadn't thought of that additional nicety...

Sign in to comment.