在所有子图中同时绘制图

时间:2014-04-24 11:03:43

标签: matlab subplot

我有一个带有2个子图的图。 我想知道是否可以(以及如何)在所有子图中同时绘制相同的图。

例如,在下图中,我想同时绘制(x,y),然后单独进行。

fig1 = figure
subplot(2,1,1)
plot(x,y)
hold on
subplot(2,1,2)
plot(x,y)
hold on

subplot(2,1,1)
plot(x,z)
subplot(2,1,2)
plot(x,k)

2 个答案:

答案 0 :(得分:2)

您可以使用单元格数组set执行此操作,如下所示。有关详细信息,请参阅documentation

subplot(2,1,1);
h1 = plot(x,y); %// get a handle to the plot
subplot(2,1,2)
h2 = plot(x,y); %// get a handle to the plot

set([h1; h2], {'xdata'}, {x1; x2}, {'ydata'}, {y1; y2})
%// new values: x1 x2 y1 y2

答案 1 :(得分:0)

如果你问因为你想在16个子图后面绘制相同的图,那么你可以在一个循环中进行:

for k= 1:16
    s(k) = subplot(4,4,k);
    plot(x,y);
    hold on;
end

如果您只想要2个子图,那么您当前的代码

没有任何问题