如何在MATLAB 2014b中增加散点图中图例的标记大小?

use*_*808 5 matlab scatter legend legend-properties matlab-hg2

我在散点图中找到了标记大小,并且图例在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]) 
Run Code Online (Sandbox Code Playgroud)

散点图和图例中的标记大小不同.如何增加图例条目的标记大小并使其类似于散点图的标记大小.

Ben*_*_11 6

如果我理解正确,您希望访问icons调用的输出legend并修改作为MarkerSize这些图标的子项的修补程序对象的属性.

致电legend:

[h,icons,plots,legend_text] = legend('Circle', 'Plus', 'X', 'Location', 'NorthEast'); 
Run Code Online (Sandbox Code Playgroud)

icons 是这样的6x1图形数组:

icons = 

  6x1 graphics array:

  Text     (Circle)
  Text     (Plus)
  Text     (X)
  Group    (Circle)
  Group    (Plus)
  Group    (X)
Run Code Online (Sandbox Code Playgroud)

你需要的是与a相关的元素Group.

如果你看一下他们的房产(这里icons(4)),你会得到:

icons(4)

 Group (Circle) with properties:

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

  Show all properties
Run Code Online (Sandbox Code Playgroud)

因此,有一个与之关联的补丁对象作为其子对象.您想要使用例如修改它

icons(Some index).Children.MarkerSize
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您需要修改对象4到6:

for k = 4:6
icons(k).Children.MarkerSize = 20;
end
Run Code Online (Sandbox Code Playgroud)

哪个输出:

在此输入图像描述

当然,你可以自动化.我使用了R2015a,所以我希望R2014b的行为相同.

希望这就是你的意思!