我正在使用MATLAB绘制时间序列的两行......(最小和最大行)
我将点汇聚在数据末尾的单个点上。
我正在尝试填充线条之间的区域,然后在阴影区域的顶部绘制其他线条。
这是我的问题:
当我使用“填充”时,它完全符合我的要求......但是它从数据的最后一点回到初始数据点。我该如何摆脱它?
这是我的两个例子的非常模糊的草图:
图表下方的线条就是我所说的......
任何想法如何避免?
谢谢!
答案 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)