【发布时间】:2014-06-30 17:43:41
【问题描述】:
我不明白为什么 patch 命令用红色填充我的函数上方的区域而不是它下方的区域;我的意思是我的函数图和横坐标轴之间的区域。
x = linspace(0, 4);
f = x.^2;
plot(x, f)
patch(x, f, [1 0 0])
【问题讨论】:
标签: matlab plot matlab-figure
我不明白为什么 patch 命令用红色填充我的函数上方的区域而不是它下方的区域;我的意思是我的函数图和横坐标轴之间的区域。
x = linspace(0, 4);
f = x.^2;
plot(x, f)
patch(x, f, [1 0 0])
【问题讨论】:
标签: matlab plot matlab-figure
因为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])
将给予:
或者按照 Luis Mendo 的建议使用 area:
area(x, f,'FaceColor',[1 0 0])
【讨论】:
area(x, f) 与原始值一起使用