2012-04-20 142 views
6

我发现我可以把set(0, 'DefaultAxesFontSize',14)在startup.m来的文件,然后改变蜱的默认字体大小,轴标签,和我的人物称号。是否可以为标题或坐标轴标签设置单独的默认字体大小?MATLAB默认的数字字体大小

+1

相关说明:我检查了get(0,'Factory')和'get(0,'default')',并没有看到任何与上面提到的字体大小相关的数字字体。 – Hanmyo 2012-04-20 07:41:20

+1

我最后一次检查(Matlab2010b)没有默认,除了DefaultAxesFontSize和DefaultTextFontSize fontsizes。我不认为他们加了它。 – bdecaf 2012-04-20 10:52:14

回答

6

你不能有标题和标签的标准机制单独的默认字体大小。如果你愿意重载标签命令,那么你可以非常接近。最简单的是修改xlabel以允许默认字体。您需要之前

set(h, 'String', string, pvpairs{:}); 

添加

if ~isempty(getappdata(ax, 'DefaultAxesXLabelFontSize')) 
    set(h, 'FontSize', getappdata(ax, 'DefaultAxesXLabelFontSize')); 
else 
    if ~isempty(getappdata(get(ax, 'parent'), 'DefaultAxesXLabelFontSize')) 
     set(h, 'FontSize', getappdata(get(ax, 'parent'), 'DefaultAxesXLabelFontSize')); 
    elseif ~isempty(getappdata(0, 'DefaultAxesXLabelFontSize')) 
     set(h, 'FontSize', getappdata(0, 'DefaultAxesXLabelFontSize')); 
    end 
end 
立即

如果你不希望修改核心文件,你可以重载xlabel

function varargout = xlabel(varargin) 
    ax = axescheck(varargin{:}); 
    if isempty(ax) 
     ax = gca; 
    end 
    oldPath = pwd; 
    cd([matlabroot, filesep, 'toolbox', filesep, 'matlab', filesep, 'graph2d']); 
    xlabel = str2func('xlabel'); 
    cd(oldPath); 

    oldFontsize = get(ax, 'FontSize'); 
    if ~isempty(getappdata(ax, 'DefaultAxesXLabelFontSize')) 
     set(ax, 'FontSize', getappdata(ax, 'DefaultAxesXLabelFontSize')); 
    else 
      if ~isempty(getappdata(get(ax, 'parent'), 'DefaultAxesXLabelFontSize')) 
       set(ax, 'FontSize', getappdata(get(ax, 'parent'), 'DefaultAxesXLabelFontSize')); 
     elseif ~isempty(getappdata(0, 'DefaultAxesXLabelFontSize')) 
       set(ax, 'FontSize', getappdata(0, 'DefaultAxesXLabelFontSize')); 
      end 
    end 
    varargout{1:nargout} = xlabel(varargin{:}); 
    set(ax, 'FontSize', oldFontsize); 
    if ~nargout 
     varargout = {}; 
    end 
end 

无论哪种方式,您可以设置默认字体大小与

setappdata(0, 'DefaultAxesXLabelFontSize', 36) 

setappdata(gcf, 'DefaultAxesXLabelFontSize', 36) 

setappdata(gca, 'DefaultAxesXLabelFontSize', 36) 

注意,它使用setappdata而不是set