我通常使用surf
函数在matlab中绘制3D图形,但现在数据不同,所以我使用plot3
,我有下图。您是否知道即使使用不同的功能,我如何重建这个数字也更容易理解。
为了更简洁,我有X值,每个X值都有一个Y值和Z值。
X = [ 1 ;2 ;4; 8; 16; 32; 64];
Z = [ 1; 1.8 ; 3.46 ; 6.74 ; 13.18 ; 24.34 ; 39.33]
Y = [0 ; 56.92 ; 91 ; 109.95 ; 119 ; 123.57 ; 125.51]
fig = plot3(log(X),Y,Z,'b.-');
XLABEL=[ 1 2 4 8 16 32 64];
set(gca,'XTickLabel',XLABEL);
set(gca,'XTick',log(XLABEL));
YLABEL= [ 0 30 60 90 120 150 180];
set(gca,'YTickLabel',YLABEL);
set(gca,'YTick',YLABEL);
ZLABEL= [0 5 10 15 20 25 30 35 40 45 50 55];
set(gca,'ZTickLabel',ZLABEL);
set(gca,'ZTick',(ZLABEL));
ylim([0 180]);
zlim([0,55]);
grid on
答案 0 :(得分:4)
很难说,因为我们没有上下文。常见的选择是:
选项3的代码:
在代码的最后,添加以下代码:
X2=[X';X';nan(size(X'))];
X2=X2(:);
Y2=[Y';Y';nan(size(Y'))];
Y2=Y2(:);
Z2=[Z';zeros(size(Z'));nan(size(Z'))];
Z2=Z2(:);
hold on
plot3(log(X2),Y2,Z2,'--')
要理解它,你必须知道matlab在绘图时会跳过nans。因此,上面的代码为每个点生成一个独立的线段,将其连接到地平面。