【问题标题】:Labeling 3D Surface Plots in MATLAB along respective axes在 MATLAB 中沿各个轴标记 3D 曲面图
【发布时间】:2017-10-29 14:40:14
【问题描述】:

我对在 MATLAB 中沿各个轴标记 3D 曲面图有疑问。

for j=1:length(op)
    x = op{j}(:,1);
    z = st:inc:en;
    y = op{j}(:,2:end);
    figure
    surf(x,z,y.','FaceAlpha',1.0) % surface plot
    xlabel('Non-Dimensional Number (k_0a)')
    ylabel('Non-Dimensional Horizontal Force (HF_P)')
    zlabel('Non-Dimensional Porous Parameter (G_S)')
    axis tight
    view(30,40)
    grid on
end

结果是以下 3D 图,其标签未在各个轴上对齐。高度赞赏有关在各个轴上对齐标签的任何帮助。 非常感谢。

【问题讨论】:

    标签: matlab matlab-figure


    【解决方案1】:

    您可以设置标签的位置和旋转如下,

    [x,y] = meshgrid(1:0.5:10,1:20);
    z = sin(x) + cos(y);
    figure
    surf(x,y,z,'FaceAlpha',1.0) % surface plot
    xlabel('Non-Dimensional Number (k_0a)','FontSize', 20)
    ylabel('Non-Dimensional Horizontal Force (HF_P)','FontSize', 20)
    zlabel('Non-Dimensional Porous Parameter (G_S)','FontSize', 20)
    axis tight
    view(30,40)
    grid on
    
    
    xh = get(gca,'XLabel'); % Handle of the x label
    set(xh, 'Units', 'Normalized')
    pos = get(xh, 'Position');
    set(xh, 'Position',pos.*[1,-0.5,1],'Rotation',-10)
    yh = get(gca,'YLabel'); % Handle of the y label
    set(yh, 'Units', 'Normalized')
    pos = get(yh, 'Position');
    set(yh, 'Position',pos.*[1,-0.7,1],'Rotation',30)
    

    结果,

    Ref

    【讨论】:

    • 非常感谢。很有帮助。
    猜你喜欢
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2012-10-05
    相关资源
    最近更新 更多