matlab直方图上的多种颜色

时间:2013-10-10 09:16:51

标签: matlab colors histogram

您好我正在尝试在matlab直方图上获得多种颜色 - 我认为以下应该这样做:

figure
hist(ligand,50)
h=findobj(gca,'Type','patch');
set(h,'FaceColor',[0 .5 .5],'EdgeColor','w')
hold on;
hist(potassium,50)
g=findobj(gca,'Type','patch');
set(g,'FaceColor',[0 1 1],'EdgeColor','w')
hold on;
hist(rectifier,50)
title('Alignment to AFP1')
xlabel('Score'); ylabel('Number of Sequences')
hold off;

其中第一种颜色为[0 .5 .5],第二种颜色为[0 1 1],第三种颜色为默认颜色。然而,即使我使用两个手柄为前两个指定了两种不同的颜色,h和g - 两者都是相同的颜色,使用g手柄。

我做错了什么?

编辑 - 这是针对Luis Mendos的建议 - 我得到的“索引超过矩阵维度”的内容如下

figure
hist(ligand,50)
g=findobj(gca,'Type','patch');
set(g(1),'FaceColor',[0 .5 .5],'EdgeColor','w')
hold on;
hist(potassium,50)
set(g(2),'FaceColor',[0 1 1],'EdgeColor','w')
hist(rectifier,50)
title('Alignment to AFP1')
xlabel('Score'); ylabel('Number of Sequences')
hold off; 

感谢。

1 个答案:

答案 0 :(得分:3)

问题是g是一个双元素向量,因为它包含已经绘制的两个直方图。删除h(第3行和第4行)的行,并将行set(g,...)替换为

set(g(1),'FaceColor',[0 .5 .5],'EdgeColor','w')
set(g(2),'FaceColor',[0 1 1],'EdgeColor','w')