Matlab多条形图恒定高度轴

时间:2013-05-10 20:14:05

标签: matlab

我正在使用this question中的方法,并尝试让每组条形都具有比例高度。这个方法会使.1高度的条形看起来与另一个垂直列上的条形高度相同,例如.5高度...我已经尝试过设置' XLimMode'手动和' XLim'不变的价值,但它不起作用。

是否有人知道如何确保所有条形图的高度与相同的' -axis(条形轴高度)成比例?

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,首先找到所有值的最大值(totmaxaxes),然后在axes off之前添加该行。

totmaxaxes = max(n(:));

% generate "data"
m = rand( 40,10 ); 
[n x] = hist( m, 50 );

% the actual plotting
figure; 
ma = axes('Position',[.1 .1 .8 .8] );  % "parent" axes
N = size(n,2);  % number of vertical bars
for ii=1:N, 
   % create an axes inside the parent axes for the ii-the barh
   sa = axes('Position', [0.1+(ii-1)*.8/N, 0.1, .8/N, .8]); % position the ii-th barh
   barh( x, n(:,ii), 'Parent', sa); 
   set(sa, 'Xlim', [0,totmaxaxes + totmaxaxes/40])      %ADD THIS! (+ totmaxaxes/4 just assures that your bar doesn't hit the top)
   axis off;
end