2012-04-20 2 views
6

Я обнаружил, что могу положить set(0, 'DefaultAxesFontSize',14) в файл startup.m, который затем изменяет размер шрифта по умолчанию для тиков, меток осей и названия моих цифр. Возможно ли иметь отдельный размер шрифта по умолчанию для ярлыков названия или осей?Размер шрифта по умолчанию MATLAB

+1

Соответствующее примечание: Я проверил 'get (0, 'Factory')' и 'get (0, 'default')' и не видел ничего, связанного с размером шрифта фигуры, отличным от указанного выше ... – Hanmyo

+1

В прошлый раз, когда я проверил (Matlab2010b), для шрифтов не было значения по умолчанию, кроме DefaultAxesFontSize и DefaultTextFontSize. И я не думаю, что они добавили его. – bdecaf

ответ

6

Вы не можете иметь отдельный размер шрифта по умолчанию для заголовков и меток со стандартными механизмами. Если вы хотите перегрузить команды маркировки, вы можете приблизиться. Проще всего было бы изменить xlabel, чтобы разрешить шрифт по умолчанию. Вы должны были бы добавить

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 

непосредственно перед

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

Если вы не хотите, чтобы изменить основной файл, вы можете перегрузить 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.

Смежные вопросы