我试图沿着一条线绘制阴影不确定性(上限和下限)。我尝试使用fill
函数,但它包含的区域比我想要的大。我有一个上部错误(黑色),下部错误(绿色)和实际数据行(红色),如下所示:
如何获得绿线和黑线之间的区域?我尝试了以下方法:
fill([date fliplr(date)], [data_Upper fliplr(data_Lower)], 'r');
但填充功能涵盖了两个线区域一直到底部的情节:
如何解决这个问题只能遮蔽下错误线界限和上错误界限之间的区域?
在我看来,你使用了错误的下界数据。
这是一个简单的MATLAB示例,您可以修改它以包含您的行,
x =[1 2 3 4 5];%Both lines share same x value
y1=x+1;%Equation for first line
y2=2*x;%Equation for second line
% plot the line edges
hold on
plot(x, y1, 'LineWidth', 1);
plot(x, y2, 'LineWidth', 1);
% plot the shaded area
fill([x fliplr(x)], [y2 fliplr(y1)], 'r');
运行这个的结果是
祝好运!
我认为问题在于你的数据是以列向量(即N-by-1)而不是行向量(即1-by-N)排列的。上面的代码假定行向量。尝试使用flipud
和vertical concatenation代替:
fill([date; flipud(date)], [data_Upper; flipud(data_Lower)], 'r');
详细说来,当你将N-by-M矩阵传递给大多数绘图程序(如fill
)时,它将为每列绘制一个对象。在这种情况下,我相信你正在创建N-by-2矩阵并将它们传递给fill
,当你应该为单个填充对象传递1×2 * N或2 * N-by-1向量时。