MATLAB: Issues with area function to fill under plot

area plot

Consider the following code:
xData = rand(100,1)*0.5;
yData = linspace(2000,2500,100);
figure(1)
plot(xData,yData)
which produce the following figure (after resizing it slightly horizontally):
Now, I want to basically fill the area under the curve, i.e. between x=0 and the curve. So, when I try the area function:
figure(2)
area(xData,yData)
I get the following figure (which is obviously not what I want):
What am I doing wrong?

Best Answer

Try this:
y = 0:20;
x = rand(size(y));
figure(1)
plot(x, y)
hold on
patch([ zeros(size(x)) x ], [ fliplr(y) y ], 'g')
hold off