setting the "hold" property for axes

48 vues (au cours des 30 derniers jours)
hans
hans le 7 Déc 2021
Modifié(e) : hans le 8 Déc 2021
the suggested way to set hold to "on" "all" oder "off" seems to be writing
hold on
or
ax=plot(x,y); hold(ax,'on');
To set most other properties, a syntax like
txt=xlabel(t,'My_Xlabel'); txt.FontSize = 18; txt.FontWeight = 'bold';
seems to be suggested.
Is there a way to apply this syntax to the hold property of the axes ?
A code like
ax.hold='on'
which was intuitive to me, doesn't work.

Réponse acceptée

Dave B
Dave B le 7 Déc 2021
Modifié(e) : Dave B le 7 Déc 2021
The hold function corresponds to the NextPlot property on the Axes.
I realize that's a little confusing - hold has only two states, on or off, but NextPlot has a few more options. All the way at the bottom of the hold documentation page you'll find this text:
The hold function sets these properties:
  • NextPlot axes property - Sets this property of the associated Axes, PolarAxes, or GeographicAxes object to either 'add' or 'replace'.
  • NextPlot figure property - Sets this property of the Figure object to 'add'.
So the code snippet you're looking for is:
ax.NextPlot = 'add';
There's a small caveat not mentioned in the documentation above, which is that hold off has some slightly different behavior with uiaxes. Instead of setting the NextPlot property to 'replace' it sets it to 'replacechildren'. This can be more useful in apps - it means that the children of the axes will be replaced but the axes will retain other settings. Details about all the different kinds of NextPlot on figure and axes are here:

Plus de réponses (1)

hans
hans le 8 Déc 2021
Modifié(e) : hans le 8 Déc 2021
OK, thank You a lot for this hint.

Catégories

En savoir plus sur Specifying Target for Graphics Output dans Help Center et File Exchange

Produits


Version

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by