2011-09-08 95 views
2

我使用MATLAB绘制时间序列的两行...(最小值和最大值线)两个时间序列图和它们之间的阴影... MATLAB

我有在单点汇聚点在数据的末尾。

我想填充行之间的区域,然后在阴影区域顶部绘制其他行。

这里是我的问题:

当我使用“填充”它不正是我想要它做的...但它绘制一条线从数据恢复到初始数据点的最后一个点。我如何摆脱它?

这里是我的两个例子很模糊的草图:

image

image2

图形下方的线就是我谈论...

任何想法如何避免这种情况?

谢谢!

+0

相关的问题:MATLAB,在两组数据中,一个数字线之间的区域填充(http://stackoverflow.com/questions/6245626/matlab-filling-in-the-two-sets-of-data-lines-in-one-figure) – Amro

回答

3

正如@Jonas解释的(打败我),你需要正确地排序两个时间序列的数据。我再补充一个例子来指出:

%# first series 
x1 = linspace(pi/4, 5*pi/4, 100); 
y1 = cos(x1); 

%# second series 
x2 = linspace(pi/4, 5*pi/4, 100); 
y2 = sin(x2); 

subplot(121), fill([x1 x2], [y1 y2], 'r') 
subplot(122), fill([x1 fliplr(x2)], [y1 fliplr(y2)], 'r') 
hold on 
plot(x1,y1, 'Color','b', 'LineWidth',3) 
plot(x2,y2, 'Color','g', 'LineWidth',3) 

enter image description here

4

我猜你

fill([xData1;xData2],[yData1;yData2]) 

创建填充其中xData1是n乘1你的第一个曲线阵列X-数据。这会导致奇怪的多边形,因为多边形的“角落”没有正确排列。

相反,你应该做的

fill([xData1;xData2(end:-1:1)],[yData1;yData2(end:-1:1]) 

即翻转两个数据集之一的顺序。

+0

+1我发表了一个例子来说明 – Amro

相关问题