MATLAB Answers

0

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

Yasmin Samy さんによって質問されました 2018 年 10 月 18 日
最新アクティビティ 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 https://www.mathworks.com/matlabcentral/answers/101806-how-can-i-insert-my-matlab-figure-fig-files-into-multiple-subplots but still it changed the axis and the details of the figures. thanks

  8 件のコメント

Walter Roberson
2018 年 10 月 19 日
copyobj of the axes children is not enough: you need to copy the axes properties as well.
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
回答者: 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
by
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 件のコメント

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 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