Matlab多个堆积的图

时间:2015-05-08 22:25:26

标签: matlab plot

我从未见过如下情节((a)中的情节)。它甚至可能吗?

enter image description here

2 个答案:

答案 0 :(得分:7)

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

  

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

如果可能的话,哪个回答了问题; - )

我们所需要的只是axes命令的基本知识 - 其余的只是调整以使它看起来不错。我们来看看它:

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

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');

现在我们可以创建一个新的轴对象并在其上绘制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]);

现在我们需要创建第二个图表。我们只是在我们喜欢的位置创建另一个轴对象:

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');

就这么简单,我们得到的东西甚至看起来都不那么糟糕:

the result

答案 1 :(得分:2)

使用多个waterfall图,正如Horchler建议的那样:

 %// 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])

我们可以得到这个: enter image description here