Ho trovato che posso mettere set(0, 'DefaultAxesFontSize',14)
in un file startup.m, che quindi cambia la dimensione del carattere predefinito di zecche, le etichette degli assi e il titolo delle mie figure. È possibile avere una dimensione del carattere predefinita per le etichette del titolo o degli assi?MATLAB carattere predefinito dimensioni dimensioni
6
A
risposta
6
Non è possibile avere una dimensione di carattere predefinita per titoli ed etichette con i meccanismi standard. Se sei disposto a sovraccaricare i comandi di etichettatura, allora puoi venire molto vicino. Il più semplice sarebbe modificare xlabel
per consentire un carattere predefinito. Si avrebbe bisogno di aggiungere
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
immediatamente prima
set(h, 'String', string, pvpairs{:});
Se non si desidera modificare un file core si può sovraccaricare 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 entrambi i casi, è possibile impostare il dimensione carattere predefinita con
setappdata(0, 'DefaultAxesXLabelFontSize', 36)
o
setappdata(gcf, 'DefaultAxesXLabelFontSize', 36)
o
setappdata(gca, 'DefaultAxesXLabelFontSize', 36)
Nota che usa setappdata
e non set
.
Nota pertinente: Ho controllato 'get (0, 'Factory')' e 'get (0, 'default')' e non ho visto nulla relativo alla dimensione del font di figura diversa da quella menzionata sopra ... – Hanmyo
L'ultima volta che ho controllato (Matlab2010b) non esisteva alcun valore predefinito per fontsizes oltre a DefaultAxesFontSize e DefaultTextFontSize. E non penso che l'abbiano aggiunto. – bdecaf