Размеры шрифта рисунка по умолчанию MATLAB

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


person Hanmyo    schedule 20.04.2012    source источник
comment
Соответствующее примечание: я проверил get(0,'Factory') и get(0,'default') и не увидел ничего, связанного с размером шрифта рисунка, кроме упомянутого выше...   -  person Hanmyo    schedule 20.04.2012
comment
В прошлый раз, когда я проверял (Matlab2010b), не было значений по умолчанию для размеров шрифта, кроме DefaultAxesFontSize и DefaultTextFontSize. И я не думаю, что они добавили это.   -  person bdecaf    schedule 20.04.2012


Ответы (1)


У вас не может быть отдельного размера шрифта по умолчанию для заголовков и меток со стандартными механизмами. Если вы готовы перегрузить команды маркировки, вы можете подойти довольно близко. Проще всего было бы изменить 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)

or

setappdata(gcf, 'DefaultAxesXLabelFontSize', 36)

or

setappdata(gca, 'DefaultAxesXLabelFontSize', 36)

Обратите внимание, что используется setappdata, а не set.

person StrongBad    schedule 19.09.2013