MATLAB中条形图中的等间距

时间:2018-01-31 10:53:17

标签: matlab plot

我在MATLAB中使用bar命令创建了这个条形图:

enter image description here

我想知道是否有办法摆脱空位 在2478和2886之间,以及在4314和5130之间

如果我可以让酒吧在他们之间拥有相等的空间,那将是完美的。

2 个答案:

答案 0 :(得分:10)

bar的文档中所述,

  

bar(x,y)x指定的位置绘制条形图。

表示此行为是有意的:每个条形图都是在x指定的确切位置绘制的。

要获得等距条形,您可以使用categorical函数,该函数将x转换为适用于离散类别的数据类型。 这样,你告诉MATLAB x不是一个数值向量,其中x(i)x - i - 元素的坐标,而是一个简单的标签值。

bar(categorical(x), y)

Bar graph with categorical x-values

答案 1 :(得分:6)

您的条形图在x数据的位置绘制,并相应地间隔。

你可以对[1, 2, 3, ..., 13]进行绘图,并像这样重新标记轴

示例数据:

x = [1886,2070,2274,2478,2886,3090,3294,3498,3702,3960,4110,4314,5130];
y = rand(1,13)*5 + 32;

绘图

bar( 1:numel(y), y );
set( gca, 'XTickLabel', x );

plot