2013-10-10 61 views
2

嗨,我試圖讓一個matlab直方圖多種顏色多種顏色 - 我認爲下面應該這樣做: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 0.5 0.5],在第二個[0 1 1],第三個是默認顏色。不過,即使我已經使用兩個手柄爲前兩個指定了兩個單獨的顏色,但使用g手柄時,h和g都是相同的顏色。

我在做什麼錯?

編輯 - 這是路易斯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

替換行set(g,...)? – lhcgeneva

+1

我認爲問題是'g'是一個二元向量。嘗試set(g(1),'FaceColor',[0.5.5],'EdgeColor','w')','set(g(2),'FaceColor',[0 1 1] EdgeColor','w')' –

+0

@lhcgeneva'hist'不返回句柄。它會返回箱計數 –

回答

3

問題是g是一個二元向量,因爲它包含已經繪製的兩個直方圖。與h(線3和4)拆下線和您是否嘗試使用H = HIST(配位體,50),而不是使用由GCA

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

嗨路易斯 - 再次感謝回答我的一個問題。添加你的建議的第二行給我一個matirx超出界限的錯誤似乎有問題。我會用我正在使用的當前代碼更新我的問題。 – brucezepplin

+0

@brucezepplin在你的更新代碼中,你需要在第二個'hist'之後立即移動第三行('g = findobj ...')和第四個('set(g(1)...'),之前'set(g(2)...'。試試吧,告訴我它是否可以工作 –

+0

非常感謝Luis。我發現有點直覺,但是它的工作原理.... – brucezepplin