如何在MATLAB中给3D图形下方填充区域?

7
我使用MATLAB中的plot3函数创建了以下3D图表:

enter image description here

现在,我想在“2D子图形”(即蓝色和红色曲线下方)下面得到一个阴影区域。不幸的是,我不知道如何实现。
如果有人有想法,我将非常感激。
1个回答

8
你可以使用函数 fill3 并参考 这个回答中的 2D 情况,了解如何在数据向量的末尾添加点以“关闭”填充多边形。虽然创建图案(即剖线)可能很难甚至不可能,但另一种选择是简单地调整填充补丁的 alpha 透明度。以下是一个仅包含一个补丁的简单示例:
x = 1:10;
y = rand(1, 10);
hFill = fill3(zeros(1, 12), x([1 1:end end]), [0 y 0], 'b', 'FaceAlpha', 0.5);
grid on

这是它所呈现的情节:

enter image description here

您可以在一次调用fill3中创建多个补丁。这是一个包含4组数据的示例:
nPoints = 10;  % Number of data points
nPlots = 4;    % Number of curves
data = rand(nPoints, nPlots);  % Sample data, one curve per column

% Create data matrices:
[X, Y] = meshgrid(0:(nPlots-1), [1 1:nPoints nPoints]);
Z = [zeros(1, nPlots); data; zeros(1, nPlots)];
patchColor = [0 0.4470 0.7410];  % RGB color for patch edge and face

% Plot patches:
hFill = fill3(X, Y, Z, patchColor, 'LineWidth', 1, 'EdgeColor', patchColor, ...
              'FaceAlpha', 0.5);
set(gca, 'YDir', 'reverse', 'YLim', [1 nPoints]);
grid on

这是它所呈现的情节:

enter image description here


非常感谢!那对我帮助很大! - Peter123

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接