How to permanently fix the position of the plot window ?

61 views (last 30 days)
I wonder if it's possible to set the parameters of display to see the plot window always in the same position. Because I have two displays and I would like to fix the position on my second screen. In addition, when I use only one screen, the plot window exceeds the screen and I don't have access anymore to the window control bar.
Can anyone help me ? Thanks

Accepted Answer

Alexander
Alexander on 28 Aug 2023
Edited: Alexander on 28 Aug 2023
I think you need this:
set (groot, 'DefaultFigurePosition', p);
You have to put this line in the startup.m.
To get p: Open a figure and move it to the position you want it when plotting. Get the position:
p=(figure(1),''Position');
Hardcopy the content of p in the command above.
In my startup.m are the lines:
p = [-916 571 560 420];
set (groot, 'DefaultFigurePosition', p);
  5 Comments

Sign in to comment.

More Answers (1)

Daniele Sportillo
Daniele Sportillo on 28 Aug 2023
Hi Alice,
the command
groot().MonitorPositions
gives you informations about your screens. Check this: Graphics environment and state information
ans =
1.0e+03 *
-1.9190 0.3557 1.9200 1.0800
0.0010 0.0010 2.5600 1.4400
In my case, I have the principal screen on the right (2nd line) and the secondary screen on the left (1st line).
So if I want to plot on my left screen I do:
fig=figure;
fig.Position = [-1000 500 500 350]; %note the minus sign
ax=axes(fig);
plot(ax,1:5);
To be sure that your plot will be "visible", no matter how many screens you are using, you could clamp the position of your figure into your screens range, like this:
fig.Position = [max(-3000, min(groot().MonitorPositions(:,1))) 500 500 350];
In alternative, you could just use an if-else condition according to the number of your screens:
if size(groot().MonitorPositions,1) == 1 % I am using only one monitor
% fig.Position = ...
else
% fig.Position = ...
end
Hope this helps!
  1 Comment
Alice Lemoine
Alice Lemoine on 28 Aug 2023
thanks a lot ! but I search a solution which fixs the problem for all the time I want to plot figure

Sign in to comment.

Categories

Find more on MATLAB in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!