在matlab中绘制不同颜色的同一图中的多个直方图

时间:2012-10-01 16:50:13

标签: matlab plot histogram

我有600x24矩阵a,我想在同一图中制作每列的直方图但在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;

1 个答案:

答案 0 :(得分: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);