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

How to increase marker size of the legend in scatter plot in MATLAB 2014b?

我发现散点图中的标记大小和 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]) 

散点图和图例中的标记大小不同。如何增加图例条目的标记大小并使其与散点图的标记大小相似。

如果我没理解错的话,您想访问 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

输出:

您当然可以自动执行此操作。我使用的是 R2015a,所以我希望 R2014b 的行为相同。

希望这就是你的意思!