Incorrect logarithmic axes after setting 'defaultAxesNextPlot' to 'add'.
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Chunyu Xiao
le 22 Fév 2022
Commenté : Chunyu Xiao
le 22 Juin 2022
Hello there,
I want to set default groot properties to simplify plot procedure. However, when I run set(groot,'defaultAxesNextPlot','add') to set 'hold on' as default, the loglog function doesn't work as it was and showed a linear axes instead.
The minimal example can be given:
x = logspace(-3,3,100);
y = (x+1)./(x+.1);
figure % before `set()`, correct
loglog(x,y)
set(groot,'defaultAxesNextPlot','add')
figure % after `set()`, incorrect
loglog(x,y)
set(groot,'defaultAxesNextPlot','remove')
figure % remove settings, correct
loglog(x,y)
You may also notice that after set(groot,'defaultAxesNextPlot','add'), the box is turned off too.
How can I correctly set plot properties to 'hold on' by default? (My MATLAB: R2021b)
Thanks for your advice/help.
0 commentaires
Réponse acceptée
Nick Van Oosterwyck
le 17 Juin 2022
When you enable hold on with set(groot,'defaultAxesNextPlot','add'), the figure and axes properties become locked. Thus, because the default scale is linear, your figure will remain linear even when you use the loglog (or semilogx/semilogy) command.
In this post, the Mathworks Support Team recommends to use hold on only after the loglog, semilogx or semilogy command. However, this is not possible when you preset hold on with set(groot,'defaultAxesNextPlot','add').
Therefore, you should manually change the axes scale:
x = logspace(-3,3,100);
y = (x+1)./(x+.1);
set(groot,'defaultAxesNextPlot','add')
figure
loglog(x,y)
set(gca, 'XScale', 'log','YScale', 'log') % set log-scale manually
box on % add box manually
If you don't want to add the box manually for every figure, you can also change the default setting BEFORE creating the figures with:
set(groot,'defaultAxesBox','on');
Regards
Nick
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Graphics Performance 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!