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)
散点图和图例中的标记大小不同.如何增加图例条目的标记大小并使其类似于散点图的标记大小.
如果我理解正确,您希望访问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的行为相同.
希望这就是你的意思!