axis command fails for log scale
Mostrar comentarios más antiguos
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.
Respuestas (2)
Jan
el 22 de En. de 2018
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.
1 comentario
Charles
el 22 de En. de 2018
Charles
el 23 de En. de 2018
0 votos
Categorías
Más información sobre Exponents and Logarithms en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!