You cannot have a separate default font size for headings and labels with standard mechanisms. If you want to overload the marking commands, you can get closer. The easiest way is to modify xlabel
to allow the default font. You will need to add
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
immediately before
set(h, 'String', string, pvpairs{:});
If you do not want to modify the main file, you can reload 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
In any case, you can set the default font size with
setappdata(0, 'DefaultAxesXLabelFontSize', 36)
or
setappdata(gcf, 'DefaultAxesXLabelFontSize', 36)
or
setappdata(gca, 'DefaultAxesXLabelFontSize', 36)
Note that it uses setappdata
, not set
.