在Matlab Legend中更改符号大小

时间:2015-02-26 11:52:16

标签: matlab graphics fonts matlab-figure

是否可以选择更改matlab创建的图例中的符号大小? 我想要做的是增加符号,我在一个图中使用了3个点的4个散点,但我没有找到方法。

感谢。

4 个答案:

答案 0 :(得分:8)

Matlab R2014a或更早版

增加字体大小:获取所有类型为'text'的图例子项的句柄,并将其'Fontsize'属性设置为所需的值。

增加标记大小:获取所有类型为'line'的图例子项的句柄,并将其'Markersize'属性设置为所需的值。

plot(1:10, 'o-'); 
hold on
plot(5:12, 'r*--'); %// example plots
h = legend('one plot', 'another plot', 'location', 'NorthWest'); %// example legend
ch = findobj(get(h,'children'), 'type', 'text'); %// children of legend of type text
set(ch, 'Fontsize', 14); %// set value as desired
ch = findobj(get(h,'children'), 'type', 'line'); %// children of legend of type line
set(ch, 'Markersize', 12); %// set value as desired

enter image description here

Matlab R2014b或更新版本(HG2

图例中元素的组织现在是不同的。以下作品:

plot(1:10, 'o-'); 
hold on
plot(5:12, 'r*--'); %// example plots
[~, objh] = legend({'one plot', 'another plot'}, 'location', 'NorthWest', 'Fontsize', 14);
%// set font size as desired
objhl = findobj(objh, 'type', 'line'); %// objects of legend of type line
set(objhl, 'Markersize', 12); %// set marker size as desired

enter image description here

答案 1 :(得分:2)

如果有人像我一样来到这里寻找一种方法来改变散点图的图例标记大小:而不是线条图类型为'line'的对象,则需要'patch'类型的对象(2017b)。 / p>

objhl = findobj(objh, 'type', 'patch'); % objects of legend of type patch
set(objhl, 'Markersize', 12); % set marker size as desired

答案 2 :(得分:0)

对于我来说,我需要在MATLAB R2019b中绘制多列图例(使用“ NumCloumns”属性),并且需要在图例中更改标记大小。不幸的是,这两个要求不能同时满足。 MATLAB将忽略图例函数的两个返回值中的“ NumColumns”参数。

我最终绘制了一些非常大的点,这些点的颜色与实验数据的颜色相同,超出了轴限制,并显示了它们的图例。尽管这是一个肮脏的解决方案,但效果很好。

答案 3 :(得分:-2)

你可以这样写:

h = legend('1st', '2nd', '3rd', '4th');
set(h, 'Fontsize', 12);