为此,我使用了像这样的代码(只有没有轴)
angle = 30;
surf(x, -x*sind(angle)+y*cosd(angle),z)
axis off
view([90,50])
另一个类似的解决方案(使用对象的坐标转换,而不是轴的坐标转换)在这里Oblique projection in Matlab mesh(由 gnovice 表示):
但我也需要正确显示轴。是否可以实现轴属性(y轴)来更改其方向的显示(例如,使用Java)?
答案 0 :(得分:0)
如果你想从特定的角度查看你的情节(正如你所描述的那样),view
非常优雅,但是你的代码没有按你所描述的那样做。
使用view([90,50])
,您可以在水平和垂直方向上获得Z轴和Y轴,而不是Z和X.
你想要的是view([0,0])
。
虽然你不能完全按照你的方式显示你的轴,但view([0,0])
接近(X轴不是水平,但接近)。
用于演示的代码:
x=1:0.1:4;
y=1:0.1:4;
[X,Y]=meshgrid(x,y);
Z=sin(X).^2+cos(Y).^2;
surf(X,Y,Z);
xlabel('x')
ylabel('y')
zlabel('z')
答案 1 :(得分:0)
我认为您正在寻找的是将Projection
更改为perspective
,如https://www.mathworks.com/help/matlab/ref/axes-properties.html#prop_Projection所述,然后使用view([0,0])
。例如,如果您运行
x = linspace(0,1);
y = linspace(0,1);
[xx,yy] = meshgrid(x,y);
zz = xx.^2 + yy.^2;
surf(xx,yy,zz)
xlabel('x')
ylabel('y')
zlabel('z')
ax = gca;
ax.Projection = 'perspective';
view([0,0])
你会得到下图: