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

两个时间序列图和它们之间的阴影…MATLAB,matlab,plot,time-series,fill,Matlab,Plot,Time Series,Fill,我正在使用MATLAB绘制一个时间序列的两条线。。。(最小和最大线) 我把这些点集中在数据末尾的一个点上 我试图填充线之间的区域,然后在阴影区域顶部绘制其他线 我的问题是: 当我使用“fill”时,它完全按照我希望它做的做…但是它从数据的最后一点到初始数据点画了一条线。我怎样才能摆脱它 下面是我的两个示例的一个非常模糊的草图: 图表下面的线条就是我所说的 有没有办法避免这种情况 谢谢 我猜你是用 fill([xData1;xData2],[yData1;yData2]) 其中,xData1

我正在使用MATLAB绘制一个时间序列的两条线。。。(最小和最大线)

我把这些点集中在数据末尾的一个点上

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

我的问题是:

当我使用“fill”时,它完全按照我希望它做的做…但是它从数据的最后一点到初始数据点画了一条线。我怎样才能摆脱它

下面是我的两个示例的一个非常模糊的草图:

图表下面的线条就是我所说的

有没有办法避免这种情况


谢谢

我猜你是用

fill([xData1;xData2],[yData1;yData2])
其中,
xData1
是第一条曲线的x数据的n×1数组。这将导致一个形状怪异的多边形,因为多边形的“角”排列不正确

相反,你应该这样做

fill([xData1;xData2(end:-1:1)],[yData1;yData2(end:-1:1])
i、 e.翻转两个数据集之一的顺序。

正如@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)

相关问题: