通过设置每个bar的宽度和位置使得bar相互不重叠,又挨在一起。
至于如何调,我暂没时间研究的很深,应该是默认宽度和[0 1](也就是每个值对应的不同的一组bar)之间的关系。
如果是5组数。应该下面的子图和参数基本够用。
太粗糙,只是够用。
- clear all
- clc
- colormap(jet)
- n=8;
- sbp_width=0.9;
- sbp_heig=0.85;
- n_row = 2;
- n_col = 2;
- [out_pos]=fun_mm_subplot_pos(n_row,n_col,sbp_width,sbp_heig);
- h=figure(1)
- set(h, 'Position', [100, 100, 1200, 600]);
-
- a= rand(n,2);
- ax=axes('position',out_pos(1,:));
- h=bar(a,'barwidth',1.72)
- set(h(1),'XData',[1:n]-0.62 + 0.5)
- set(h(2),'XData',[1:n]-0.4 + 0.5)
- grid on
- axis([0 n+1 0 1])
- a= rand(n,3);
- ax=axes('position',out_pos(2,:));
- h=bar(a,'barwidth',1.5)
- set(h(1),'XData',[1:n]-0.61 + 0.5)
- set(h(2),'XData',[1:n]-0.50 + 0.5)
- set(h(3),'XData',[1:n]-0.39 + 0.5)
- grid on
- axis([0 n+1 0 1])
- a= rand(n,4);
- ax=axes('position',out_pos(3,:));
- h=bar(a,'barwidth',1.35)
- set(h(1),'XData',[1:n]-0.61 + 0.5)
- set(h(2),'XData',[1:n]-0.54 + 0.5)
- set(h(3),'XData',[1:n]-0.47 + 0.5)
- set(h(4),'XData',[1:n]-0.4 + 0.5)
- grid on
- axis([0 n+1 0 1])
- a= rand(n,5);
- ax=axes('position',out_pos(4,:));
- h=bar(a,'barwidth',1.261)
- set(h(1),'XData',[1:n]-0.594 + 0.5 )
- set(h(2),'XData',[1:n]-0.547 + 0.5 )
- set(h(3),'XData',[1:n]-0.504 + 0.5)
- set(h(4),'XData',[1:n]-0.457 + 0.5)
- set(h(5),'XData',[1:n]-0.41 + 0.5)
- grid on
- axis([0 n+1 0 1])
- h = gcf;
- fi_na=['./fig_bar'];
- fun_work_li_035_myfig_out(h,fi_na,3);
复制代码
|