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]、2 番目は [0 1 1]、3 番目はデフォルトの色です。ただし、2 つのハンドル h と g を使用して最初の 2 つの色を別々に指定しましたが、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; 

ありがとう。

4

1 に答える 1

3

問題は、g既にプロットされた 2 つのヒストグラムが含まれているため、これが 2 要素ベクトルであることです。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 に答える