5

散布図でマーカー サイズが見つかりましたが、MATLAB 2014b では凡例が異なります。以前のバージョンの MATLAB の解決策を検索して見つけましたが、最新バージョンには適用されません。私の現在のバージョンでは、凡例のマーカーのサイズが小さすぎてほとんど区別できません。何か助けはありますか?

figure; 
hold on 
s1 = scatter(1, 1, 150, 'k', 'o') 
s2 = scatter(1, 2, 150, 'k', '+') 
s3 = scatter(2, 1, 150, 'k', 'x') 
h = legend('Circle', 'Plus', 'X', 'Location', 'NorthEast'); 
set(h, 'FontSize', 14) 
axis([0 3 0 3]) 

散布図と凡例のマーカー サイズは異なります。凡例エントリのマーカー サイズを大きくして、散布図と同じようにするにはどうすればよいですか。

4

1 に答える 1

8

私の理解が正しければicons、呼び出しの出力にアクセスして、それらのアイコンの子であるパッチ オブジェクトlegendのプロパティを変更する必要があります。MarkerSize

に電話するlegend:

[h,icons,plots,legend_text] = legend('Circle', 'Plus', 'X', 'Location', 'NorthEast'); 

icons次のような 6x1 グラフィック配列です。

icons = 

  6x1 graphics array:

  Text     (Circle)
  Text     (Plus)
  Text     (X)
  Group    (Circle)
  Group    (Plus)
  Group    (X)

必要なのは、に関連付けられた要素Groupです。

それらのプロパティ (こちらicons(4)) を見ると、次のようになります。

icons(4)

 Group (Circle) with properties:

    Children: [1x1 Patch]
     Visible: 'on'
     HitTest: 'off'

  Show all properties

そのため、子として関連付けられた patch オブジェクトがあります。たとえば、を使用して変更したい

icons(Some index).Children.MarkerSize

あなたの場合、オブジェクト 4 から 6 を変更する必要があります。

for k = 4:6
icons(k).Children.MarkerSize = 20;
end

出力:

ここに画像の説明を入力

もちろん、これを自動化できます。R2015a を使用したので、R2014b でも同じ動作になると思います。

これがあなたの意図したものであることを願っています!

于 2015-09-18T14:45:32.210 に答える