隐藏3D MATLAB轴的一面墙(即隐藏z方向的投影x轴)

时间:2017-10-27 12:58:12

标签: matlab 3d matlab-figure

我对MATLAB比较陌生,想知道是否有人可以帮我处理3D绘图格式。

我正在尝试移除3D轴的一个墙/平面,以创建以下效果:

示例代码:

figure(); 

plot3(1:1:10, 1:1:10, 1:1:10);
grid on

产地:

MATLAB result

然而,我想要以下(使用图像编辑在下面制作 - 我正在寻找MATLAB代码来获得这种效果):

Result I'd like

看起来我无法嵌入图片但抱歉。

任何帮助表示感谢。

编辑:感谢您举报类似的问题,虽然我不认为这解决了我的问题:该解决方案似乎只是设置墙壁颜色/可见性,而我也想有选择地从墙上删除网格线(但是将网格线留在地板上 - 如我的图片所示。这可能吗?

1 个答案:

答案 0 :(得分:0)

这是一种方法,通过放置一个“墙”或二维平面来隐藏你想要隐藏的墙,并通过编辑色彩图将其涂成白色:

surf(peaks); hold on % 3D plot
box on;  % standard black box wireframe
grid on

ax=gca;  % lets get the axes limits
xl=ax.XLim; 
yl=ax.YLim;
zl=ax.ZLim;

% making our 2d plane
[y,z] = meshgrid([yl(1),yl(end)],[zl(1), zl(end)]);
x = xl(end)+zeros(size(z));
c = -inf; % coding it to be at the bottom of the colormap
surf(x,y,z,c)
hold off
colormap([[1,1,1];parula(255)]); % adding white to the first colormap row

enter image description here