You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MATLAB使用log2作为x轴时如何删除多余xticklabels并添加指定刻度

Matlab log2刻度X轴自定义标签解决方案

核心修改逻辑

不需要使用自动生成的X轴刻度,直接手动指定刻度位置和对应标签即可,逻辑如下:

  • 期望显示的标签对应的X轴实际数值为log2(标签值)(因为绘图时X轴输入的是log2(CPU核数))
  • 手动指定XTick为这些转换后的位置,XTickLabel为想要显示的原始数值,就能完全规避自动生成的非2的整数次幂的中间标签

具体修改方法

将代码中以下两行:

xt = get(gca, 'XTick');
set(gca, 'XTickLabel', 2.^xt);

替换为如下代码即可:

% 自定义想要显示的X轴标签
desired_labels = [1, 2, 4, 8, 16, 28, 32];
% 计算标签对应的log2刻度位置(匹配X轴的数值空间)
xtick_pos = log2(desired_labels);
% 手动设置刻度和标签
set(gca, 'XTick', xtick_pos);
set(gca, 'XTickLabel', desired_labels);
% 可选:调整X轴范围确保32的标签完整显示
xlim([log2(1), log2(32)]);

完整修改后代码

compTime_1by1 = [1088.43, 603.71, 354.15, 236.48, 180.46, 159.06];
compTime_2by1 = [2196.49, 1179.91, 648.38, 413.79, 299.63, 268.45];
compTime_3by1 = [3238.68, 1729.27, 930.70, 590.57, 419.56, 337.15];

speedup_1by1 = compTime_1by1(1) ./ compTime_1by1;
speedup_2by1 = compTime_2by1(1) ./ compTime_2by1; 
speedup_3by1 = compTime_3by1(1) ./ compTime_3by1; 

numberOfCPUCores = [1, 2, 4, 8, 16, 28];

h1 = plot(log2(numberOfCPUCores), speedup_1by1, '-ob');
set(h1, 'MarkerFaceColor', get(h1,'Color'));

hold on;
h2 = plot(log2(numberOfCPUCores), speedup_2by1, '-or');
set(h2, 'MarkerFaceColor', get(h2,'Color'));

hold on;
h3 = plot(log2(numberOfCPUCores), speedup_3by1, '-ok');
set(h3, 'MarkerFaceColor', get(h3,'Color'));

% -------------- 以下为修改的部分 --------------
% 自定义想要显示的X轴标签
desired_labels = [1, 2, 4, 8, 16, 28, 32];
% 计算标签对应的log2刻度位置(匹配X轴的数值空间)
xtick_pos = log2(desired_labels);
% 手动设置刻度和标签
set(gca, 'XTick', xtick_pos);
set(gca, 'XTickLabel', desired_labels);
% 调整X轴范围确保32的标签完整显示
xlim([log2(1), log2(32)]);
% -------------- 以上为修改的部分 --------------

set(gca, 'FontSize', 14);
title('Parallel Scalability Test');
legend('Aspect ratio = 1 : 1', 'Aspect ratio = 2 : 1', 'Aspect ratio = 3 : 1', 'Location', 'best');
xlabel('Number of CPU cores');
ylabel('Speed-up');

grid on; grid minor;

内容的提问来源于stack exchange,提问作者livemyaerodream

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 18:15:04