试图理解Matlab的补丁命令

时间:2014-06-30 17:43:41

标签: matlab plot matlab-figure

我不明白为什么补丁命令用红色填充我功能上方的区域而不是下面的区域;我的意思是我的功能图和横坐标轴之间的区域。

x = linspace(0, 4);
f = x.^2;
plot(x, f)
patch(x, f, [1 0 0])

enter image description here

1 个答案:

答案 0 :(得分:3)

因为patch绘制了一个闭合的多边形。在你的最后一点之后,它会以最短的方式回到第一点。您需要在结尾添加一个额外的点,并从最后/第一个参数开始,但f = 0

就像那样:

x = linspace(0, 4);
f = x.^2;

plot(x, f)

%adjust data

x = [x(1) x x(end)];
f = [0 f 0];

patch(x, f, [1 0 0])

会给:

enter image description here

或者按照路易斯·门多的建议使用area

area(x, f,'FaceColor',[1 0 0])

enter image description here