用曲线功能定义的颜色图填充曲线下方的区域

时间:2019-03-24 10:44:10

标签: matlab plot colors matlab-figure area

考虑以下情节:

enter image description here

在左侧,您可以使用patch命令查看相对于函数轮廓的圆圈填充

t = linspace(-pi,pi,100);
c = exp(-cos(t));
figure(1)
patch(cos(t),sin(t),c)
axis equal

在右侧您会看到沿左侧虚线轴的功能配置文件,该配置文件使用area命令填充。

figure(2)
area(cos(t),c,0);

我想做的是用左面板中表示形式的颜色图定义的颜色填充曲线(右面板)下方的区域。结果应如下所示 enter image description here

1 个答案:

答案 0 :(得分:1)

我能想到的最接近的东西是这样:

function q55322965
% Evaluate the equation (half domain!)
t = linspace(-pi,0,50);
c = exp(-cos(t));

% Turn vectors into a mesh:
[TT,CC] = meshgrid(cos(t),c);

% Clear all points that are above the curve:
CC(CC > c) = NaN;

% Fill in the rectangle between the chart and zero:
CC(end+1,:) = 0;
TT(end+1,:) = TT(end,:);

% Plot:
figure(); mesh(TT,CC,CC,'FaceColor','interp','EdgeColor','interp'); view([0,90]);

哪种产量:

enter image description here

如果使用这种方法进行绘制时希望获得锯齿状的外观,可以在t中提高分辨率。例如,如果我们在500中使用50而不是linspace,则会得到:

enter image description here