How to permanently fix the position of the plot window ?

47 ビュー (過去 30 日間)
Alice Lemoine
Alice Lemoine 2023 年 8 月 24 日
コメント済み: Alexander 2023 年 8 月 28 日
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

採用された回答

Alexander
Alexander 2023 年 8 月 28 日
編集済み: Alexander 2023 年 8 月 28 日
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 件のコメント
Alice Lemoine
Alice Lemoine 2023 年 8 月 28 日
it seems working ! thanks a lot !
Alexander
Alexander 2023 年 8 月 28 日
Cheers

サインインしてコメントする。

その他の回答 (1 件)

Daniele Sportillo
Daniele Sportillo 2023 年 8 月 28 日
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 件のコメント
Alice Lemoine
Alice Lemoine 2023 年 8 月 28 日
thanks a lot ! but I search a solution which fixs the problem for all the time I want to plot figure

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by