2012-04-20 27 views
6

He encontrado que puedo poner set(0, 'DefaultAxesFontSize',14) en un archivo startup.m, que luego cambia el tamaño de fuente predeterminado de ticks, etiquetas de ejes y título de mis figuras. ¿Es posible tener un tamaño de letra por separado para el título o las etiquetas de los ejes?Tamaño de fuente predeterminado de MATLAB

+1

Nota relevante: comprobé 'get (0, 'Factory')' y 'get (0, 'default')' y no vi nada relacionado con el tamaño de letra de fuente que no sea el mencionado anteriormente ... – Hanmyo

+1

La última vez que revisé (Matlab2010b) no había ningún valor predeterminado para los tamaños de fuente además de DefaultAxesFontSize y DefaultTextFontSize. Y no creo que lo hayan agregado. – bdecaf

Respuesta

6

No puede tener un tamaño de fuente predeterminado independiente para títulos y etiquetas con los mecanismos estándar. Si está dispuesto a sobrecargar los comandos de etiquetado, puede acercarse bastante. Lo más fácil sería modificar xlabel para permitir una fuente predeterminada. Usted tendría que añadir

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 

inmediatamente antes

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

Si no desea modificar un archivo de núcleo puede sobrecargar 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 

De cualquier manera, se puede establecer el tamaño de fuente predeterminado con

setappdata(0, 'DefaultAxesXLabelFontSize', 36) 

o

setappdata(gcf, 'DefaultAxesXLabelFontSize', 36) 

o

setappdata(gca, 'DefaultAxesXLabelFontSize', 36) 

Note que usa setappdata y no set.

Cuestiones relacionadas