Why do I always need to run plot twice?

21 views (last 30 days)
Every time I run a script that has a series of plot calls, it will always come out wrong the first time (only one line where there should be more, etc.) and I need to run the whole script again and then it works as expected. except because of this it is impossible to make a correct legend because despite the line not being visable it's still stored as a line in the plot and thus the legend lists it first.
The way I see it, I either need to fix how plots launch on my machine or have a way to always apply the right legend to the right plot.
  7 Comments
Steven Lord
Steven Lord on 8 Sep 2022
My suspicion is that you're calling plot twice then turning hold on. In that case the first time this runs the second plot call would erase the first plot, but the second time you run it hold is already enabled so both the plots created before the hold would remain.
Torfi
Torfi on 8 Sep 2022
I'm afraid not, I always call hold on; berfore any plot()s and call hold off; at the end.

Sign in to comment.

Accepted Answer

Torfi
Torfi on 9 Sep 2022
I figured it out.
If you call figure() or subplot() inside hold on; Then this happens.
  1 Comment
Walter Roberson
Walter Roberson on 9 Sep 2022
hold only affects the current axis. figure() with no argument creates a new figure and so a new axis. subplot() with a combination of arguments that has not been used before creates a new axis.
However if you figure() passing in an existing figure number then no new axis will be created, and subplot with a combination of parameters that has been used before will not create a new axis. If you left hold on in an axis and then reuse the axis then you can run into issues... and if you had an existing axis and turn hold on first then you can run into issues

Sign in to comment.

More Answers (1)

Walter Roberson
Walter Roberson on 8 Sep 2022
When you call hold on before you do any plotting, then the xlim and ylim will default to 0 1 and will not change unless you call xlim or ylim. The limits are one of the things held.

Tags

Products


Release

R2022a

Community Treasure Hunt

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

Start Hunting!