MATLAB Answers

How can i place saved figures into a new figure as subplots?

139 ビュー (過去 30 日間)
Yasmin Samy
Yasmin Samy 2018 年 10 月 18 日
Commented: Yasmin Samy 2018 年 10 月 26 日
Hello, I am trying to place my plotted figures (saved as .fig) as subplots in one figure. The problem i face is that they axis totally changes. I would like to place them in subplots without any changes.
I tried the code at but still it changed the axis and the details of the figures. thanks

  8 件のコメント

表示 5 件の古いコメント
Walter Roberson
Walter Roberson 2018 年 10 月 19 日
copyobj of the axes children is not enough: you need to copy the axes properties as well.
Yasmin Samy
Yasmin Samy 2018 年 10 月 19 日
Thanks Walter, that makes sense. Can you guide me as in how to do that exactly...

サインイン to comment.

件の回答 (1)

Jan 2018 年 10 月 20 日
編集済み: Jan 2018 年 10 月 20 日
I assume, all you have to do is to replace:
h7 = figure; %create new figure
s1 = subplot(2,3,1); %create and get handle to the subplot axes
fig1 = get(ax1,'children'); %get handle to all the children in the figure
copyobj(fig1,s1); %copy children to new parent axes i.e. the subplot axes
h7 = figure; %create new figure
newAxes = copyobj(ax1, h7); %copy axes to new figure
If you want to change the position of the new axes object, do this afterwards.

  4 件のコメント

表示 1 件の古いコメント
Walter Roberson
Walter Roberson 2018 年 10 月 25 日
You would use multiple copies of the second line to copy all of the axes into the h7 figure. You would not need "hold on".
You would have to set the Position properties after doing the copying.
Note: this approach is likely to mess up legends, and possibly colorbar plots as well.
Jan 2018 年 10 月 26 日
@Yasmin Samy: To be exact, you cannot "put a figure in a subplot". While a "figure" is the complete window with title bar and menus, a "subplot" is an axes object. Does "playing with the figure position" mean the position of the axes? Confusing.
Yasmin Samy
Yasmin Samy 2018 年 10 月 26 日
@Walter Roberson: Thanks for your comment, i guess plotting them all in the same figure where they overlap each other, then use Position to place them in the required place (and resize them as well). Thanks for that.
@Jan: Yes i meant using Position to place them where i want them instead of using subplot. I tried doing that with 2 plots, having them plotted (they overlap each other) full size in the same figure. Then i manually resized and put them in the place i would want them to be (manually doing what i was hoping 'subplot' would do).

サインイン to comment.

サインイン してこの質問に回答します。

Translated by