Resize axes in figure Matlab
42 ビュー (過去 30 日間)
古いコメントを表示
I have a button in my Matlab GUI to open up an axes plot in a new figure, here is my code:
fig=figure;
set(fig, 'Position', [100, 100, 1049, 895]);
h=handles.axes2;
copyobj(h,fig);
set(gca,'units','pix')
set(gca,'units','norm')
However, the axes is quite small in the new figure:
But when I try to add this line at the bottom of the previous code:
get(gca,{'Position',[100, 100, 1049, 895]}); % [left bottom right top]
nothing changes... I have tried changing the numbers as well but the axes does not get resized...
Can anyone tell me what I'm doing wrong?
Thanks
0 件のコメント
採用された回答
Image Analyst
2015 年 4 月 24 日
Set the OuterPosition of the axes, not the figure:
set(h, 'Units', 'Normalized'); % First change to normalized units.
set(h, 'OuterPosition', [.1, .1, .85, .85]); % [xLeft, yBottom, width, height]
4 件のコメント
Image Analyst
2017 年 2 月 27 日
The first two elements, xLeft and yBottom, specify the location. What are your problems? Rectify what? Please supply simple code to illustrate the problems.
Roy Ramirez
2022 年 11 月 30 日
didn't work for me. I put the axes widget inside of a Panel widget an now I can size it with GUIDE
その他の回答 (1 件)
Adam
2015 年 4 月 24 日
編集済み: Adam
2015 年 4 月 24 日
Apart from the obvious point that you are calling ' get ', not ' set ', I've never used copyobj so am not really familiar with it, but you should really try to work with an explicit axes handle rather than gca which is somewhat transient. It may not be a problem here, but it can easily become a source of problems when your program gets more complicated.
3 件のコメント
Adam
2015 年 4 月 24 日
You may want to play around with the
OuterPosition
property of the axes too. That is the onoe that includes all the space for the title, axes ticks, labels etc etc.
参考
カテゴリ
Help Center および File Exchange で Interactive Control and Callbacks についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!