10

私は次の写真を持っています:

ここに画像の説明を入力

そして伝説を作りたい。基本的には、長方形の種類ごとに凡例を作りたいと思っています。凡例ボックスでは、マークするボディのタイプに応じて各色の線をマークしたいと思います。

  • 緑線:頭
  • 黄線:胴体
  • 紫色のライン:右腕
  • シアンライン:左腕
  • 赤線:左足
  • 青線:右足

各タイプの長方形が多いため、これは基本的にカスタムです。カスタム凡例を作成して、この絵を描く図に添付するにはどうすればよいですか?

4

5 に答える 5

7

これには 2 つの方法があります。正方形を作成して、hggroup に割り当てることができます。このようにして、各色に複数のアイテムを用意する必要はありません。このようなもの:

hold on
for ii = 1:4
    hb(ii) = plot(rand(1,2), rand(1,2),'color','r'); 
end

hg = hggroup;
set(hb,'Parent',hg) 
set(hg,'Displayname','Legs')

legend(hg)

または、次のようにダミー オブジェクトを作成することもできます。

hold on
for ii = 1:4
    hb(ii) = plot(rand(1,2), rand(1,2),'color','r'); 
end

p = plot([],[],'r');

legend(p,'Legs')

前者はもう少しエレガントです。

于 2012-10-15T12:03:04.590 に答える
2

私が考えることができる最も簡単な方法は、最初に各タイプの 1 つの四角形をプロットし、一意の四角形のみの凡例を作成することです。そのようです:

figure;
hold on;

% unique rectangles
plot(rand(1, 10), 'b');
plot(rand(1, 10), 'g');

% the rest
plot(rand(1, 10), 'b');
plot(rand(1, 10), 'g');

% use normal legend with only as many entries as there are unique rectangles
legend('Blue', 'Green');

同じ色の線が多数ありますが、凡例は一意の色のみです。

于 2012-10-15T11:32:21.080 に答える
1

プロットの外側に凡例のドットを描画するだけです:

figure;
plot(-1,-1,'gs',-1,-1,'b^',-1,-1,'ro');
legend('x1','x2','x3','Location','NorthWest');
xlim([0,1]); ylim([0,1]);
于 2016-06-30T02:09:24.177 に答える