如何在MATLAB中增加条形图中条形的宽度而不会导致条形重叠?下面的脚本增加了条宽,但条重叠:
graph = [ 1 2 ; 3 4 ; 5 6 ; 7 8 ];
bar(graph,'BarWidth',2);
答案 0 :(得分:4)
我知道这样做的唯一方法是通过多次调用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函数不是通用的,但可以扩展为处理更广泛的输入数据。
答案 1 :(得分:1)
默认宽度= 0.8。
如果宽度为1,则组内的条纹彼此接触。
值> 1产生重叠条。
设置宽度小于1。 e.g。
figure; bar(graph,0.4);