0

我正在使用这个问题中的方法,并试图使每组条都具有成比例的高度。此方法将使高度为 0.1 的条看起来与另一个垂直列上高度为 0.5 的条具有相同的高度...我尝试将“XLimMode”设置为手动,将“XLim”设置为恒定值,但它不起作用。

有谁知道如何确保所有条形图的高度与相同的“y”轴(条形轴高度)成正比?

4

1 回答 1

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
于 2013-05-10T20:21:14.447 回答