matlab直方图上的多色
您好,我正在尝试在matlab直方图上获得多种颜色-我认为以下应该可以做到:matlab直方图上的多色,matlab,colors,histogram,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; h
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],第三种颜色为默认颜色。然而,即使我已经使用两个手柄为前两个指定了两种不同的颜色,h和g-使用g手柄时,它们都是相同的颜色
我做错了什么
编辑-这是路易斯·门多斯的建议-我得到了一个“索引超过了矩阵维度”,如下所示
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;
谢谢。问题在于
g
是一个两元素向量,因为它包括已经绘制的两个直方图。删除带有h
(第3行和第4行)的行,并将set(g,…)
行替换为
set(g(1),'FaceColor',[0 .5 .5],'EdgeColor','w')
set(g(2),'FaceColor',[0 1 1],'EdgeColor','w')
你试过用h=hist(配体,50)代替gca吗?我认为问题在于g是一个双元素向量。尝试
set(g(1),'FaceColor',[0.5.5],'EdgeColor','w')
,set(g(2),'FaceColor',[01],'EdgeColor','w')
@lhcgenevahist
不返回句柄。它将返回bin countHi Luis-再次感谢您回答我的一个问题。在添加您建议的第二行时,似乎出现了问题,这给了我一个matirx越界错误。我将用我正在使用的当前代码更新我的问题。@brucezepplin在更新的代码中,您需要将第三行(g=findobj…
)和第四行(set(g(1)…
)移到第二行hist
)之后和set(g(2)之前…
。试试看,告诉我是否works@brucezeppelin在绘制两个直方图之后添加findobj
行,以便g
包含这两个直方图