在 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.')));
结果是:
我有一个矩阵,我想把它放在条形图中。这可行,但是 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 标签的同时均匀分布。
非常感谢任何帮助。
还记得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.')));
结果是: