Problem in setting Yaxis value
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
T S Singh
le 25 Août 2018
Modifié(e) : Yair Altman
le 27 Août 2018
I am using MATLAB 2015a. After going through the Q&A I finally wrote the command lines to set the Yaxis values as exponent, but its not working.
Here is the code
x = linspace(0,5,1000);
y = 100*exp(x).*sin(20*x);
plot(x,y)
ax = gca;
ax.YAxis.Exponent = 2;
Its showing this error "
No appropriate method, property, or field 'YAxis' for class
'matlab.graphics.axis.Axes'.
Error in rough6 (line 32)
ax.YAxis.Exponent = 2;"
Please help me to convert the Yaxis value in desired exponent form.
Thanks
0 commentaires
Réponse acceptée
Star Strider
le 25 Août 2018
I don’t remember when that was introduced. It was obviously after R2015a.
One approach to a work-around:
x = linspace(0,5,1000);
y = 100*exp(x).*sin(20*x);
plot(x,y)
ax = gca;
% ax.YAxis.Exponent = 2;
yt = ax.YTick;
xpnt = 2;
new_tick_lbls = 10.^log10((10^-xpnt)*abs(yt)).*sign(yt);
ytlblc = sprintfc('%.0f',new_tick_lbls); % Undocumented: ‘sprintfc’; % Undocumented: ‘sprintfc’
ax.YTickLabel = ytlblc;
text(min(xlim), max(ylim)*1.05, sprintf('\\times10^{%.0f}', xpnt))
Experiment to get the result you want.
0 commentaires
Plus de réponses (1)
Yair Altman
le 27 Août 2018
Modifié(e) : Yair Altman
le 27 Août 2018
Try this - note that it relies on the hidden/undocumented axis property YRuler (and similarly for XRuler, ZRuler):
ax.YRuler.Exponent = 2;
This works from R2014b onward. Starting in R2015b you can use YAxis instead of YRuler, but YRuler can still be used to this day as a synonym. If you want to take a careful approach in case YRuler will someday stop working, do this:
try
ax.YAxis.Exponent = 2;
catch
ax.YRuler.Exponent = 2;
end
0 commentaires
Voir également
Catégories
En savoir plus sur Interactive Control and Callbacks dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!