首页 文章

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

提问于
浏览
4

这个问题在这里已有答案:

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

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

1 回答

  • 5

    如果我理解正确,您想要访问 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的行为相同 .

    希望这就是你的意思!

相关问题