填充两条水平线之间的区域

时间:2014-02-13 11:35:24

标签: matlab plot fill area

我在下面的链接中关注了这个问题的最多投票答案,但我没有得到任何结果。 MATLAB, Filling in the area between two sets of data, lines in one figure

我想填充一条水平线y = 6和另一条水平线y = 9

之间的区域
x=ones(1,110)                  %#initialize x array
y1=6*(x);                      %#create first curve 
y2=9*(x);                      %#create second curve
X=[x,fliplr(x)];               %#create continuous x value array for
Y=[y1,fliplr(y2)];             %#create y values for out and
fill(X,Y,'b');                 %#plot filled area

简单地说它不起作用!知道为什么不呢?

2 个答案:

答案 0 :(得分:3)

你快到了。

X应该包含x点(1:110)而不是ones(110)的索引。

X=[1:110,fliplr(1:110)];

给出

enter image description here

答案 1 :(得分:2)

您的代码可以简化:

area([1 110],[9 9],6)    % plot a line between (x1,y1) and (x2,y2), then fill down to a baseline (6)
ylim([0 10])             % scale y axis to fit

对于直线,你只需要两个点,而不是110点。