Matlab中3D柱状图Y轴标签显示不全及X轴标签调整方案问询
Matlab 3D柱状图:修复Y轴标签显示不全并调整X轴标签位置
针对你遇到的两个问题,以下是基于Matlab原生功能的解决方案,直接修改你的代码即可:
核心修改点说明
- 修复Y轴标签显示不全:通过调整坐标轴的
InnerPosition属性增大左侧边距,为Y轴标签留出足够空间;同时可手动微调标签位置确保完全显示。 - 调整X轴标签靠近刻度:修改X轴标签的
Position属性,减小其与X轴刻度的垂直距离。
修改后的完整代码
clear; % Change default axes fonts. set(0,'DefaultAxesFontName', 'Times New Roman') set(0,'DefaultAxesFontSize', 21) % Change default text fonts. set(0,'DefaultTextFontname', 'Times New Roman') set(0,'DefaultTextFontSize', 21) % Define data x = [100, 200, 300, 400, 500]; data = [ 5.3, 7.3, 4.3, 3.3, 1.3; 4.3, 4.3, 4.3, 5.3, 10.3; 2.3, 7.3, 2.3, 8.3, 2.3; 1.3, 9.3, 8.3, 7.3, 0.3; 9.3, 2.3, 0.3, 2.3, 0.3; 6.3, 7.3, 9.3, 6.3, 7.3; ]; datasetNames = {'A', 'B', 'C', 'D', 'E', 'F'}; % Create a 3D bar chart figure; bar3(data); % Customize the axes set(gca, 'XTickLabel', x, 'YTickLabel', datasetNames, 'FontSize', 21); % Set x-axis labels as number of tasks % Align labels xlh = xlabel('Task Count', 'FontSize', 21, 'FontName', 'Times New Roman', 'FontWeight', 'normal', 'Rotation', -30); ylh = ylabel('Method', 'FontSize', 21, 'FontName', 'Times New Roman', 'FontWeight', 'normal', 'Rotation', 37); zlh = zlabel('Fitness', 'FontSize', 21, 'FontName', 'Times New Roman', 'FontWeight', 'normal'); % Set Z-axis limits zlim([0.31, max(data(:))]); % Start Z-axis at 0.0018 % Set view angle for better visualization view(45, 30); % --- 新增/修改部分:修复Y轴标签显示,调整X轴标签位置 --- % 调整坐标轴内边距,为Y轴标签留出空间 ax = gca; ax.InnerPosition = [0.15, 0.15, 0.7, 0.7]; % 左侧边距从默认值增大到0.15 % 手动微调Y轴标签位置,确保完全显示 ylh.Position = ylh.Position + [-0.5, 0, 0]; % 向左平移一点 % 调整X轴标签位置,靠近刻度 xlh.Position = xlh.Position + [0, -0.3, 0]; % 向下平移,拉近与刻度的距离 % --- 修改结束 --- % Adjust figure size and layout set(gcf, 'Units', 'normalized', 'Position', [0.2, 0.2, 0.6, 0.6]); % Adjust paper size for saving fig = gcf; fig.PaperUnits = 'centimeters'; fig.PaperPosition = [0 0 14.4 12.4]; fig.PaperSize = [13.4 11.5]; % width & height of page % Save the figure print('FST_D_S2.pdf','-dpdf','-r1200');
补充说明
- 如果调整
InnerPosition后Y轴标签仍显示不全,可进一步增大第一个参数(左侧边距,范围0-1),比如改成0.2。 - X轴标签的位置可根据实际显示效果微调
Position的第二个值(垂直方向),负数表示向下移动,正数向上。
内容的提问来源于stack exchange,提问作者Santanu Ghosh
相关产品推荐
相关产品推荐

