【发布时间】:2013-10-17 23:22:45
【问题描述】:
您好,我正在尝试在 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;
谢谢。
【问题讨论】:
-
你试过用 h = hist(ligand, 50) 代替 gca 吗?
-
我认为问题在于
g是一个二元素向量。试试set(g(1),'FaceColor',[0 .5 .5],'EdgeColor','w'),set(g(2),'FaceColor',[0 1 1],'EdgeColor','w') -
@lhcgeneva
hist不返回句柄。它将返回 bin 计数