两个时间序列图和它们之间的阴影...... MATLAB

时间:2011-09-08 14:59:05

标签: matlab plot time-series fill

我正在使用MATLAB绘制时间序列的两行......(最小和最大行)

我将点汇聚在数据末尾的单个点上。

我正在尝试填充线条之间的区域,然后在阴影区域的顶部绘制其他线条。

这是我的问题:

当我使用“填充”时,它完全符合我的要求......但是它从数据的最后一点回到初始数据点。我该如何摆脱它?

这是我的两个例子的非常模糊的草图:

image

image2

图表下方的线条就是我所说的......

任何想法如何避免?

谢谢!

2 个答案:

答案 0 :(得分:4)

我猜你用

创建了填充
fill([xData1;xData2],[yData1;yData2])

其中xData1是第一条曲线的n-by-1 x数据数组。这将导致形状奇特的多边形,因为多边形的“角”没有正确排序。

相反,你应该做

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

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

答案 1 :(得分: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