我试图沿着一条线绘制阴影不确定性(上限和下限)。我尝试使用fill
函数,但它包含的区域比我想要的大。我有一个上限错误(黑色),低错误(绿色)和实际数据行(红色),如下所示:
如何获得绿线和黑线之间的区域?我尝试了以下方法:
fill([date fliplr(date)], [data_Upper fliplr(data_Lower)], 'r');
但填充功能涵盖了两个线区域,一直到底图:
如何解决这个问题只能遮蔽下错误线界限和上错误界限之间的区域?
答案 0 :(得分:1)
在我看来,您使用了错误的下限数据。
这是一个简单的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');
运行它的结果是
祝你好运!答案 1 :(得分:0)
我认为问题在于您的数据以列向量(即N乘1)而不是行向量(即1乘N)排列。上面的代码假定行向量。尝试改用flipud
和vertical concatenation:
fill([date; flipud(date)], [data_Upper; flipud(data_Lower)], 'r');
详细地说,当将N×M矩阵传递给大多数绘图例程(例如fill
)时,它将在每列中绘制一个对象。在这种情况下,当您应该为单个传递1×2 * N或2 * N×1向量时,我相信您正在创建N×2矩阵并将它们传递给fill
填充的对象。