2015-09-18 171 views
4

我在散點圖中發現了標記大小,並且在MATLAB 2014b中圖例不同。我搜索了&發現早期版本的MATLAB的一些解決方案,它不適用於最新版本。在我目前的版本中,圖例中的標記大小非常小,幾乎不可區分。任何幫助?如何在MATLAB 2014b的散點圖中增加圖例的標記大小?

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]) 

分散和圖例中的標記大小是不同的。如何增加圖例條目的標記大小&使其與散點圖相似。

+1

你能向我們展示圖片/代碼你的意思嗎? –

+0

你不喜歡那個什麼?我在我的傳奇中看到了一些BIG標記。 –

+1

@AnderBiguri圖例的FontSize屬性只控制文本。圖例中的標記大小不會更改。 – excaza

回答

4

如果我理解正確,您希望訪問legend調用的icons輸出,並修改這些圖標的子對象的修補程序對象的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 

因此,有它作爲其子相關的補丁對象。你想使用例如

icons(Some index).Children.MarkerSize 

修改它在你的情況,你需要修改的對象4〜6:

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

,輸出:

enter image description here

可以自動這當然。我使用了R2015a,所以我預計R2014b的行爲是一樣的。

希望這是你的意思!

+0

在R2015a中不起作用 – Veridian