【问题标题】:Putting space between bars using bar function使用 bar 函数在条之间放置空间
【发布时间】:2015-09-05 02:55:24
【问题描述】:

我尝试绘制 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)。如果我这样做,所有的酒吧都被放置在他们的邻居附近,并且酒吧之间没有间隙。理想情况下,为了提高可视化效果,对之间应该有空间,但对内没有空间。比如bar1bar2 <space> bar3bar4 <space> bar5bar6<space>...

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

【问题讨论】:

  • num1=1:numel(info) 应该是num1=1:2:numel(info) 对吧?否则,在第一个 bar 命令中,第一个和第二个参数的大小不同。
  • 对不起,那是正确的。我已经编辑过了。

标签: matlab plot bar-chart


【解决方案1】:

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

从文档中查看这张图片:

如果你想继续按你的方式做,你可以调整num1num2

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

【讨论】:

  • 快速跟进问题:我正在尝试将误差线放在图表上。使用 Mathworks 文档中的方法,我将信息重塑为 2xN。但是,当我执行errorbar(info,info_errors,'r.') 时,我会在两个条之间看到错误条,而不是在条本身上。有什么建议吗?
  • errorbar 在给定矩阵作为输入时会做其他事情(在错误栏上方和下方不同)。所以要么切换到第二种方法(并使用错误栏两次,一次将num1作为X,一次将num2作为X),或者看看mathworks.com/matlabcentral/fileexchange/…
猜你喜欢
  • 2017-12-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-29
  • 2022-01-06
  • 2016-04-04
  • 1970-01-01
  • 2019-07-09
相关资源
最近更新 更多