2

Matlabで凡例を制限するにはどうすればよいですか? これまでのところ、次のようなコードでグラフをプロットしています:

figure;
hold on;
plot(log(X),7.35,'ro',7.35,log(Y),'bo');
axis([7.3 7.7 7.3 7.7]);
set(gca,'xtick',[7:0.1:7.7])
set(gca,'ytick',[7:0.1:7.7])
title('atheism test file 1')
xlabel('x axis'); ylabel('y axis');
legend show;

ここで、X、Y は 10 要素の列ベクトルです。「レジェンド ショー」を実行すると、データ 1、データ 2 などの 10 個の赤い円が表示され、次に 10 個の青い円が表示されます。これをlegend('red','blue')と言うように修正すると、赤と青と呼ばれる2つの赤い円が表示されます...

私が望むのは、名前を付けることができる赤い円と青い円の2つのアイテムを表示する凡例を取ることです。

4

2 に答える 2

3

プロットしているのは、実際には の 10 個の異なるポイントlog(X)と の 10 個の異なるポイントですlog(Y)。これは、プロットごとに、各軸の入力ベクトルのサイズが異なるためです。次のように、それらを同じ次元にするだけです。

plot(log(X), 7.35 * ones(size(X)), 'ro', 7.35 * ones(size(Y)), log(Y), 'bo');

そして伝説はちゃんと出てくる。hereは必要ありhold onません (また、Figure ハンドルを格納する必要もありません)。

于 2013-03-19T15:32:13.053 に答える
3

赤と青を別々にプロットし、明示的に凡例を作成します。次のようなものを試してください:

ph1 = plot(log(X),7.35,'ro');
ph2 = plot(7.35,log(Y),'bo');
legend([ph1(1), ph2(1)], 'red', 'blue');
于 2013-03-19T15:19:11.150 に答える