MATLAB中条形图中的等间距

Joo*_*nie 6 matlab plot

我在MATLAB中有这个条形图,使用以下bar命令创建:

在此输入图像描述

我想知道是否有办法摆脱2478和2886之间以及4314和5130之间的空白区域

如果我可以让酒吧在它们之间有相同的空间,这将是完美的.

hba*_*rts 10

如文档中所述bar,

bar(x,y)在指定的位置绘制条形x.

这意味着此行为是:每个条形图都是在指定的确切位置绘制的x.

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

bar(categorical(x), y)
Run Code Online (Sandbox Code Playgroud)

带有分类x值的条形图


Wol*_*fie 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;
Run Code Online (Sandbox Code Playgroud)

绘制

bar( 1:numel(y), y );
set( gca, 'XTickLabel', x );
Run Code Online (Sandbox Code Playgroud)

情节