以下是我尝试将外部图形(http://www.atmos.uw.edu/~akchen0/CERES_Project/列出的两个图形)放入开放图形中的subplot
插槽中的命令列表。
subplot(2,2,1);
a = open('blah.fig');
plot(a);
我希望blah.fig
成为子集1,但是当我尝试"绘制"时,我只收到错误消息。一个。
从答案中尝试了列出的解决方案,但它没有打印出任何标签/图例(并且缺少一些图表) - 结果大致如下所示。
copyobj(findobj('type','line'),s1)
允许我复制所有细线(尽管它们有点失真)。如果我想尝试用
复制图例copyobj(findobj(gcf1,'Type','axes','Tag','legend'),s1)
它不起作用,并显示错误消息"对象轴1不能是父轴1"的子节点。如果我使用ax1,它会显示"无效的句柄"。对于以下命令也是如此:
copyobj(findobj('type','axes'),s1)
我试过的一些链接但是没有用到: http://www.mathworks.com/matlabcentral/answers/92538-how-can-i-copy-an-existing-figure-onto-another-figure-as-a-subplot-using-matlab-7-10-r2010a
或者:http://www.mathworks.com/matlabcentral/newsreader/view_thread/108304
>> figure_children = get(gcf1,'Children');
children_axes = findall(figure_children,'Type','axes');
>> copyobj(children_axes,s1)
Error using copyobj
Object axes[1] can not be a child of parent axes[1]
allchild也不起作用。
>> copyobj(allchild(h1),s1)
Error using copyobj
Object uicontextmenu[1] can not be a child of parent axes[1]
第二个回复here适用于自己的示例,但不适用于我的示例。
答案 0 :(得分:3)
为了复制MATLAB图形(.fig
)文件,以下是您需要遵循的步骤。
openfig
打开它们并使用reuse
标记。这样可以确保您在已经打开的情况下不会重新加载数据。 subplot
插槽的句柄。 copyobj
使用subplot
句柄,使用步骤#4中的子元素将数字复制到每个subplot
插槽中。 换句话说,请看一下这个例子:
% /// Step #1 and #2
h1 = openfig('test1.fig','reuse'); %// open figure from file
ax1 = gca; % // get handle to axes of figure
h2 = openfig('test2.fig','reuse'); %// open another figure from file
ax2 = gca; % // get handle to axes of the other figure
%// test1.fig and test2.fig are the names of the figure files which you would
%// like to copy into multiple subplots
% /// Step #3
h3 = figure; %// create new figure
s1 = subplot(2,1,1); % // create and get handle to the subplot axes
s2 = subplot(2,1,2);
% /// Step #4
fig1 = get(ax1,'children'); %// get handle to all the children in the figure
fig2 = get(ax2,'children');
% /// Step #5
copyobj(fig1,s1); %// copy children to new parent axes i.e. the subplot axes
copyobj(fig2,s2);