Why do tick directions change when log scaling x-axis?
5 views (last 30 days)
Show older comments
Dave Ortiz-Suslow
on 18 Dec 2018
Commented: Dave Ortiz-Suslow
on 7 Feb 2019
I just updated to Matlab 2018b (9.5.0.94444444) and I have come across a weird glitch when changing a plot axis scaling to logarithmic, from linear. I haven't come across this problem before in previous versions, but I haven't found a solution to this maddeningly simple problem. Here's an example that highlights the issue I see:
figure(1)
ha1 = subplot(2,1,1);
plot(1:10,linspace(1,100,10))
ha1.XDir = 'reverse';
title(ha1,'Linear axis scaling: no problem')
ha2 = subplot(2,1,2);
plot(1:10,linspace(1,100,10))
ha2.XDir = 'reverse';
ha2.XScale = 'log';
title(ha2,'X-axis log-scaled: tick direction problem')
Now with ha2, the x- and y-axes behave contrastly when setting:
ha2.TickDir = 'in';% or 'out'

Changing TickDirMode to "manual" or "auto" has no affect.
Any help is appreciated. Thanks.
Accepted Answer
Shawn Duenas
on 6 Feb 2019
Edited: Shawn Duenas
on 6 Feb 2019
Try this:
ha1.XDir = 'normal';
set(ha1,'view',[-180,-90])
I get that same issue:
Changing ytick direction is backwards. Check out the effect of this:
yax=get(gca,'yaxis');
set(yax,'tickdirection','in')
set(yax,'tickdirection','out')
I think it's because the plotting algorithm when xdir is reversed is stupid.

More Answers (2)
Cris LaPierre
on 18 Dec 2018
I wonder if it is related to this question. There, it was a bug potentially related to having an exponent in the axis.
4 Comments
Cris LaPierre
on 18 Dec 2018
Edited: Cris LaPierre
on 18 Dec 2018
But the root cause is the same - reversing the direction of one of the axes. Don't do that, and your labels will appear normal.
Agreed - it shouldn't be there. But that's the nature of bugs. They are not there intentionally.
FWIW, I checked this in the 2019a prerelease software (might be able to see it here if you have access). This bug has been fixed.
See Also
Categories
Find more on Title in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!