如何在MATLAB条形图中增加条形宽度而不重叠?

如何在MATLAB条形图中增加条形宽度而不重叠?,matlab,graph,bar-chart,overlapping,Matlab,Graph,Bar Chart,Overlapping,如何在MATLAB中增加条形图中条形的宽度,而不导致条形重叠?下面的脚本增加了条的宽度,但条重叠: graph = [ 1 2 ; 3 4 ; 5 6 ; 7 8 ]; bar(graph,'BarWidth',2); 默认宽度为=0.8 如果宽度为1,则组中的条彼此接触 值>1会生成重叠条 将宽度设置为小于1。 e、 g 默认宽度为=0.8 如果宽度为1,则组中的条彼此接触 值>1会生成重叠条 将宽度设置为小于1。 e、 g 我知道的唯一方法是通过多次呼叫酒吧 function h=BarS

如何在MATLAB中增加条形图中条形的宽度,而不导致条形重叠?下面的脚本增加了条的宽度,但条重叠:

graph = [ 1 2 ; 3 4 ; 5 6 ; 7 8 ];
bar(graph,'BarWidth',2);

默认宽度为=0.8
如果宽度为1,则组中的条彼此接触
值>1会生成重叠条

将宽度设置为小于1。 e、 g


默认宽度为=0.8
如果宽度为1,则组中的条彼此接触
值>1会生成重叠条

将宽度设置为小于1。 e、 g


我知道的唯一方法是通过多次呼叫酒吧

function h=BarSpecial(data, overallWidth )
    colour = {'r','b'};
    [r,c] = size(data);
    h = zeros(c,1);
    width = overallWidth / c;
    offset = [-width/2 width/2];
    for i=1:c
        h(i) = bar(data(:,i),'FaceColor',colour{i},'BarWidth',width);   
        set(h(i),'XData',get(h(i),'XData')+offset(i));
        hold on               
    end    
end
下面将生成一个条形图,其中条形图占总空间的90%

BarSpecial(graph,0.9)

所编写的函数BarSpecial不是通用的,但可以扩展以处理更大范围的输入数据。

我知道的唯一方法是通过多次调用bar

function h=BarSpecial(data, overallWidth )
    colour = {'r','b'};
    [r,c] = size(data);
    h = zeros(c,1);
    width = overallWidth / c;
    offset = [-width/2 width/2];
    for i=1:c
        h(i) = bar(data(:,i),'FaceColor',colour{i},'BarWidth',width);   
        set(h(i),'XData',get(h(i),'XData')+offset(i));
        hold on               
    end    
end
下面将生成一个条形图,其中条形图占总空间的90%

BarSpecial(graph,0.9)

所编写的函数BarSpecial不是通用的,但可以扩展以处理更大范围的输入数据。

0.4是指该条在分配给它的总空间中所占空间百分比的值(0.4=40%;1=100%)。因此,这不会更改总空间的大小,但会更改用于条的总空间百分比的大小。将其设置为大于1的任何值都将使其为100+%,这将增加总大小…但这会导致重叠。如何在不重叠的情况下更改总空间大小?0.4是与分配给条的总空间中条所占空间百分比相关的值(0.4=40%;1=100%)。因此,这不会更改总空间的大小,但会更改用于条的总空间百分比的大小。将其设置为大于1的任何值都将使其为100+%,这将增加总大小…但这会导致重叠。如何在不重叠的情况下更改总空间大小?请看此处:或此处:请看此处:或此处: