使用 bar 函数在 bar 之间放置 space

Putting space between bars using bar function

我正在尝试绘制 16 个柱,其中 8 个属于一组。我想给这个组赋予红色,其他 8 个属于另一个给定蓝色的组。我想将条形图成对排列,每对包含一个来自红色组和一个来自绿色组。我尝试了以下方法:

bar(num1,info(1:2:end);
bar(num2, info(2:2:end);

其中 info 包含我要绘制的 16 个值,num1=1:2:numel(info)num2=2:2:numel(info)。如果我这样做,所有的条都被放置在它们的邻居附近,并且条之间没有间隙。理想情况下,为了提高可视化效果,成对之间应该有 space,但成对内没有 space。例如,bar1bar2 <space> bar3bar4 <space> bar5bar6<space>...

有人可以帮我解决这个间距问题吗?非常感谢!

参见docs for bar。您可以将 info 重塑为 2xN(而不是其当前形状 1x2N),然后使用单个 bar 命令绘制 2 系列,它会处理间距。

从文档中查看这张图片:

如果您想继续按自己的方式行事,只需调整 num1num2:

N = numel(info) / 2;
num1 = (1:N) * 3;
num2 = (1:N) * 3 + 1;