axis command fails for log scale
5 次查看(过去 30 天)
显示 更早的评论
figure
plot([1 2], [1 2])
axis([0 3 0 3])
axis(gca)
set(gca,'yscale','log')
%axis auto
axis(gca)
The second axis command does not return the correct value. It returns zero for the min Y axis limit, and does not reflect any of the changes from switching to the log scale. Including the axis auto function is a partial workaround for this example, but for some reason does not work the same way in my (very complicated) example.
0 个评论
回答(2 个)
Jan
2018-1-22
It is not the axis command, which fails, but the axes contains the wrong values.
ax = axes;
plot([1 2], [1 2]);
ax.YLim = [0, 3];
ax.YScale = 'log';
drawnow;
ax.YLim % Returns: 0 3
But the displayed range is [1, 3]. This seems to be a bug.
The workaround is easy: Either let Matlab set the Y-limits automatically or write you own function, which avoids to set the Y-limit of a log-scaled axis to the impossible value 0.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Exponents and Logarithms 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!