Octave/Matlab - 使用现有地块绘制子图
Octave/Matlab - Subplotting figures with existing plots
我的 Octave 工作流程如下:
我有大量数据要处理,还有大量图表要生成。对于每个地块,
我有一个函数可以完成所有工作,生成自己的图和 returns 这个图的句柄以供将来修改(如果需要)。像这样:
function [h,p] = processData_and_generatePlot_A(datainput)
%%.....
h = figure();
p = plot(h, ...)
%%....
end
现在,我正在尝试做的是一个调用所有这些函数的脚本,收集所有图形,并尝试将所有图形组合成一个图形(即,生成的每个图都应该是一个子图新图)。
所以,问题是:
- 是否可以将绘图处理程序传递给
subplot
函数,以便打印绘图而不是生成新绘图?
- 如果没有,有没有办法将现有的图插入到新图中?
提前致谢
确实存在一种将不同图中的图合并为新图的子图的方法。让我害怕的是你有 "lots of plots to generate",所以你必须定义一个标准来将现有的地块分成 N
个数字,以避免将它们全部塞进一个数字。
上述方法涉及copyobj函数的使用,下面是一个示例,您可以根据需要轻松修改:
f1 = figure();
x1 = -10:0.1:10;
y1 = sin(x1);
p1 = plot(x1,y1,'r');
f2 = figure();
x2 = -10:0.1:10;
y2 = cos(x2);
p2 = plot(x2,y2,'r');
pause(5);
f3 = figure();
sub1 = subplot(1,2,1);
sub2 = subplot(1,2,2);
copyobj(p1,sub1);
delete(f1);
copyobj(p2,sub2);
delete(f2);
我的 Octave 工作流程如下:
我有大量数据要处理,还有大量图表要生成。对于每个地块, 我有一个函数可以完成所有工作,生成自己的图和 returns 这个图的句柄以供将来修改(如果需要)。像这样:
function [h,p] = processData_and_generatePlot_A(datainput)
%%.....
h = figure();
p = plot(h, ...)
%%....
end
现在,我正在尝试做的是一个调用所有这些函数的脚本,收集所有图形,并尝试将所有图形组合成一个图形(即,生成的每个图都应该是一个子图新图)。
所以,问题是:
- 是否可以将绘图处理程序传递给
subplot
函数,以便打印绘图而不是生成新绘图? - 如果没有,有没有办法将现有的图插入到新图中?
提前致谢
确实存在一种将不同图中的图合并为新图的子图的方法。让我害怕的是你有 "lots of plots to generate",所以你必须定义一个标准来将现有的地块分成 N
个数字,以避免将它们全部塞进一个数字。
上述方法涉及copyobj函数的使用,下面是一个示例,您可以根据需要轻松修改:
f1 = figure();
x1 = -10:0.1:10;
y1 = sin(x1);
p1 = plot(x1,y1,'r');
f2 = figure();
x2 = -10:0.1:10;
y2 = cos(x2);
p2 = plot(x2,y2,'r');
pause(5);
f3 = figure();
sub1 = subplot(1,2,1);
sub2 = subplot(1,2,2);
copyobj(p1,sub1);
delete(f1);
copyobj(p2,sub2);
delete(f2);