我使用MATLAB绘制时间序列的两行...(最小值和最大值线)两个时间序列图和它们之间的阴影... MATLAB
我有在单点汇聚点在数据的末尾。
我想填充行之间的区域,然后在阴影区域顶部绘制其他行。
这里是我的问题:
当我使用“填充”它不正是我想要它做的...但它绘制一条线从数据恢复到初始数据点的最后一个点。我如何摆脱它?
这里是我的两个例子很模糊的草图:
图形下方的线就是我谈论...
任何想法如何避免这种情况?
谢谢!
我使用MATLAB绘制时间序列的两行...(最小值和最大值线)两个时间序列图和它们之间的阴影... MATLAB
我有在单点汇聚点在数据的末尾。
我想填充行之间的区域,然后在阴影区域顶部绘制其他行。
这里是我的问题:
当我使用“填充”它不正是我想要它做的...但它绘制一条线从数据恢复到初始数据点的最后一个点。我如何摆脱它?
这里是我的两个例子很模糊的草图:
图形下方的线就是我谈论...
任何想法如何避免这种情况?
谢谢!
正如@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)
我猜你
fill([xData1;xData2],[yData1;yData2])
创建填充其中xData1
是n乘1你的第一个曲线阵列X-数据。这会导致奇怪的多边形,因为多边形的“角落”没有正确排列。
相反,你应该做的
fill([xData1;xData2(end:-1:1)],[yData1;yData2(end:-1:1])
即翻转两个数据集之一的顺序。
+1我发表了一个例子来说明 – Amro
相关的问题:MATLAB,在两组数据中,一个数字线之间的区域填充(http://stackoverflow.com/questions/6245626/matlab-filling-in-the-two-sets-of-data-lines-in-one-figure) – Amro