Why does figure(2) keeps overwriting the previous figure?
Show older comments
I try to open figure(2) in a different window but it keeps overwriting the previous figure.
I am currently working with MATLAB R2020a.
I tried something very simple as such:
figure(1), plot([0:10],[0:10])
figure(2), plot([0:10],[10:-1:0])
figure(3), plot([0:10],rand(1,11))
figure(1) and (3) always open in a separate window but figure(2) keeps overwriting figure(1).
See attached figures
Does anyone know how to fix this?
Thank you
7 Comments
Dave B
on 10 Aug 2021
The three figures you attached seem to match the three plot commands you provided, can you clarify what you were expecting?

Just to show your code in R2021a behaves as expected:
figure(1), plot([0:10],[0:10])
figure(2), plot([0:10],[10:-1:0])
figure(3), plot([0:10],rand(1,11))
A LL
on 10 Aug 2021
Can you confirm this is the exact code you're using?
And can you show the results of this line of code?
which figure -all
Dave B
on 10 Aug 2021
Do you mean this is what appears when you run the code you included? That would be very surprising.
Or when you open the .fig file? That would be unsurprising, the figure window is not saved in the .fig file...
Leon Hülsmann
on 22 Apr 2023
I know I'm late to the party, but if you run clf at the beginning of your script, this happens for whatever reason
Answers (1)
Sina Rangriz
on 10 Aug 2021
Edited: Sina Rangriz
on 10 Aug 2021
use save command to see whether it is working
surf(peaks)
savefig('MySavedPlot.fig')
close(gcf)
I was running your three lines in matlab 2020b and it shows seperate figures with correct labels.
check your other parts of your code to see whether something shadows your plot
2 Comments
A LL
on 10 Aug 2021
Sina Rangriz
on 10 Aug 2021
This problem is kinda weird because on my computer your attached codes working well....
figure(n) finds a figure in which the Number property is equal to n, and makes it the current figure. If no figure exists with that property value, MATLAB® creates a new figure and sets its Number property to n.
try with empty figure....like:
figure, plot([0:10],[0:10])
figure, plot([0:10],[10:-1:0])
figure, plot([0:10],rand(1,11))
Categories
Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

