如何使 MATLAB 图形中的两个图例大小相同并适当调整图例标记大小?

问题描述 投票:0回答:1

从下图可以看出以下两个问题:

  1. 图例字体大小不一致:虽然图例 1 和图例 2 都设置为字体大小 6,但它们显示的大小不同。
  2. 图例标记过大:调整 legend2.ItemTokenSize 对图例中标记的大小影响不大,仍然显得太大。

如何解决以上问题?如果您能提供帮助,我将不胜感激。 非常感谢!

fig1

这是

legend1
的代码:

    legend1=legend(legend_entries, ...
                          'FontName', 'Times New Roman', 'FontSize', 6,...
                          'Location', 'NorthEastoutside',...
                          'Box', 'on', 'NumColumns', 1 );
    
    set(legend1, 'Position', [0.84, 0.41, 0.1, 0.2]); 

    
    legend1.ItemTokenSize = [10, 10];

    
    legend('AutoUpdate', 'off');
   

这是

legend2
的代码:

if nargin > 1 && ~isempty(set_legend2)
        
        new_ax = axes('Position', get(gca, 'Position'),...
                      'Units', get(gca, 'Units'), 'Visible', 'off');
        legend2=legend(new_ax,set_legend2,plot_info.leg,...
                              'FontName', 'Times New Roman', 'FontSize', 6, ...    
                              'Location', 'northwest', ...
                              'Box', 'off', 'NumColumns', 2 );
   
        set(legend2, 'Position', [0.55, 0.75, 0.1, 0.1]); 
         
        % 调整图例大小和位置
        legend2.ItemTokenSize = [10, 10]; 
    end
matlab legend matlab-figure
1个回答
0
投票

字体大小实际上不同,还是只是因为

legend1
的条目全部为大写字母,看起来更大?如果我将图像的一些部分剪切在一起,看起来两者之间的实际字符高度是相同的,我认为你的(1)不是问题。

font size check

对于标记大小,您可以通过设置图例中线条对象的

MarkerSize
属性来独立控制它:

% Create a plot
figure(1); clf; hold on;
plot( 1:N, cos((1:N)*2/N), '-x' );
plot( 1:N, rand(1,N), '-o' );
plot( 1:N, sin((1:N)*2/N), '-d' );
% Create the legend, use the 2nd output to get the graphics objects
[leg,obj] = legend( {'cos','rand','sin'} );
% Find the line objects and change their marker properties
lines = findobj(obj,'type','line');
set(lines,'Markersize',15);

big markers

© www.soinside.com 2019 - 2024. All rights reserved.