在 MATLAB 中使用非周期性 X 标签在条形图中均匀分布条形组

Evenly distribute bar groups in a bar graph with a non-periodic X-Label in MATLAB

我有一个矩阵,我想把它放在条形图中。这可行,但是 x 轴不是周期性的,它遵循以下数字:

1 2 3 4 5 6 7 8 9 10 12 14 16 18 20 22 24 26 28 30 35 40 45 50 55 60 70 80 90

这些值存储在变量Batchsizes中,矩阵存储在变量valuable

我使用以下代码:

figure;
bar(Batchsizes,valuable);
set(gca,'Xtick',Batchsizes(1:length(Batchsizes)));

生成以下输出:

如您所见,图表左侧拥挤,右侧较宽。我想让条形组均匀分布在 x 轴上,以便图形在保留旧 x 标签的同时均匀分布。

非常感谢任何帮助。

还记得吗?当您 do 想要使用 XTickLabel 时正是这种情况(因为现在刻度将位于 1:1:29 但您希望标签具有值 Batchsizes(1),Batchsizes(2),...).这是一种方法:

Batchsizes = [1:9, 10:2:28 30:5:55 60:10:90];
valuable = randi(35,numel(Batchsizes),3);
figure; bar(1:numel(Batchsizes),valuable);
set(gca,'XTick',1:numel(Batchsizes),...
        'XTickLabel',cellstr(num2str(Batchsizes.')));

结果是: