2012-04-20 17 views
6

ich gefunden habe, dass ich set(0, 'DefaultAxesFontSize',14) in einer startup.m Datei setzen, die dann die Standardschriftgröße von Zecken ändern, Achsen Etiketten und Titel meiner Figuren. Ist es möglich, eine separate Standardschriftgröße für den Titel oder die Achsenbeschriftungen zu verwenden?MATLAB Standard Abbildung Schriftgrößen

+1

Relevante Anmerkung: Ich ausgecheckt 'erhalten (0,‚Factory‘)' und 'erhalten (0,‚default‘)' und sah etwas nicht auf Figur Schriftgröße andere als die oben genannten Zusammenhang ... – Hanmyo

+1

ich das letzte Mal überprüft (Matlab2010b) gab es keinen Standard für Schriftgrößen neben DefaultAxesFontSize und DefaultTextFontSize. Und ich glaube nicht, dass sie es hinzugefügt haben. – bdecaf

Antwort

6

Sie können keine separate Standardschriftgröße für Titel und Etiketten mit den Standardmechanismen haben. Wenn Sie bereit sind, die Beschriftungsbefehle zu überladen, dann können Sie ziemlich nah kommen. Am einfachsten wäre xlabel zu ändern für eine Standardschriftart zu ermöglichen. Sie würden

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 

unmittelbar vor

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

hinzufügen müssen Wenn Sie Sie 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 beiden Fällen überlasten können keine Core-Datei ändern möchten, können Sie einstellen, die Standardschriftgröße mit

setappdata(0, 'DefaultAxesXLabelFontSize', 36) 

oder

setappdata(gcf, 'DefaultAxesXLabelFontSize', 36) 

oder

setappdata(gca, 'DefaultAxesXLabelFontSize', 36) 

Beachten Sie, dass es setappdata und nicht set verwendet.