Matlab多重叠加图

Matlab多重叠加图,matlab,plot,Matlab,Plot,我从未见过像下面这样的情节(a中的情节)。有可能吗 根据@Ander Biguri的个人资料页面 如果你知道如何使用Matlab,它甚至可以为你做晚餐 这回答了问题,如果这是可能的;-) 我们所需要的只是命令的基本知识——其余的只是调整以使它看起来更漂亮。让我们来看看: 我们将首先创建一些示例数据: t = 100:220; x1 = -(10*(t-130)).^2; x2 = -(10*(t-150)).^2; x3 = -(10*(t-170)).^2; 然后我们将创建一个带有白色背景的

我从未见过像下面这样的情节(a中的情节)。有可能吗


根据@Ander Biguri的个人资料页面

如果你知道如何使用Matlab,它甚至可以为你做晚餐

这回答了问题,如果这是可能的;-)

我们所需要的只是命令的基本知识——其余的只是调整以使它看起来更漂亮。让我们来看看:

我们将首先创建一些示例数据:

t = 100:220;
x1 = -(10*(t-130)).^2;
x2 = -(10*(t-150)).^2;
x3 = -(10*(t-170)).^2;
然后我们将创建一个带有白色背景的初始图形

fig = figure(1);
set(fig,'Color','w');
现在我们可以创建一个新的Axis对象并在其上绘制
x1

ax(1) = axes('Position',[0.1,0.1,0.6,0.6]);
plot(ax(1),t,x1+10^4*rand(size(x1)),'-k',t,x1,'-r');
我们将移除轴周围的框,因此只保留x轴和y轴。我们进一步调整绘图的大小,以便有足够的空间放置其他两个绘图。我们还将颜色设置为“无”,即“透明”

set(ax(1),'Color','none');
set(ax(1),'Box','off');
set(ax(1),'Position',[0.1,0.1,0.6,0.6]);
现在我们需要创建第二个图形。我们将在我们喜欢的位置创建另一个Axis对象:

ax(2) = axes('Position',[0.2,0.2,0.6,0.6]);
plot(ax(2),t,x2+10^4*rand(size(x2)),'-k',t,x2,'-r');
set(ax(2),'Color','none');
set(ax(2),'Box','off');
等等:

ax(3) = axes('Position',[0.3,0.3,0.6,0.6]);
plot(ax(3),t,x3+10^4*rand(size(x3)),'-k',t,x3,'-r');
set(ax(3),'Color','none');
set(ax(3),'Box','off');
就这么简单,我们得到的东西看起来都没那么糟糕:


使用多个
瀑布图,正如霍奇勒所建议的:

 %// create some sample data
t=10:20:110;
x=0:1:200;
Y=bsxfun(@(x,t) normpdf(x,t,20),x,t.');                                                         %//' fix the code formatting on SO!!

%// Make a colormap to to set the colour of the lines
colormap([1 0 0;0 0 0]);caxis=[0 1];

%// Plot the first set of lines (red ones)
h1=waterfall(x,t,Y,zeros(size(Y)));
set(h1,'FaceColor','none','LineWidth',2) %// tweak the properties
hold on

%// Plot the second set of lines (black lines), just the red lines with some noise
h2=waterfall(x,t,Y+0.002*(rand(size(Y))-0.5),ones(size(Y)));
set(h2,'LineWidth',2)
hold off

view([16 28])
我们可以得到:

这实际上是一种。这种类型的情节最著名的用途可能是。看见使用多个重叠轴(或伪造轴)执行此操作需要一些工作。我以前从未见过此参考!我感到震惊和高兴P