2

嗨,我正在尝试在 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; 

谢谢。

4

1 回答 1

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')
于 2013-10-10T09:43:31.070 回答