2012-10-01 287 views
6

我有一个600x24矩阵a,我想直方图的每个列在同一个图中,但与MATLAB中的不同颜色,我用下面的代码,但它没有给我彩虹色,我用下面的代码,请帮帮绘制多个直方图在不同的颜色在matlab

col = hsv(24); 

hold on; 

for m = 1:24 
hist(a(:,m), 50); 
h = findobj(gca,'Type','patch'); 
set(h,'FaceColor', col(m,:),'EdgeColor',col(m,:)); 
alpha(0.3); 
end 

hold off; 

回答

6

在MATLAB hist()函数工作在基质上,并分别处理所述矩阵的每一列。 bar()函数可用于自己绘制直方图,并适当地为条目着色。因此您应该能够使用

[h,x] = hist(a,50); % histogram of every column and the bins vector 
bar(x,h);   % plot histograms 

% create a legend 
l = cell(1,24); 
for n=1:24, l{n} = num2str(n), end; 
legend(l); 
相关问题