6

set(0, 'DefaultAxesFontSize',14)startup.m ファイルを挿入すると、目盛り、軸ラベル、および Figure のタイトルの既定のフォント サイズが変更されることがわかりました。タイトルまたは軸ラベルに別の既定のフォント サイズを設定することは可能ですか?

4

1 に答える 1

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ではなく and を使用していることに注意してくださいset

于 2013-09-19T18:07:58.617 に答える