필터 지우기
필터 지우기

Font of axis data and legends

조회 수: 28 (최근 30일)
Ali Abdollahi
Ali Abdollahi 2012년 2월 23일
How can I change the font of x-axis (or y-axis or the legend)? I want to change a from matlab command not by clicking on the figure. Like "FontSize" for the texts or "LineWidth" for the curves, is there a variable that I can change the font of axis data?

채택된 답변

Tom
Tom 2012년 2월 23일
Get the handle of the label, legend etc: Handle=xlabel(...) Then you can use set(Handle,'FontName',[name of font])
  댓글 수: 3
Ali Abdollahi
Ali Abdollahi 2012년 2월 23일
Thank you Tom.
I did that for the legend and changed the legend font.
But still I don't know how to change the data of x-axis and y-axis. I want to change the font of the numbers on these axes not their labels.
Tom
Tom 2012년 2월 23일
If you do the same with the axes handle it should work: set(gca,'Fontname',...)

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Peter Wittenberg
Peter Wittenberg 2012년 2월 27일
There's a way that's somewhat easier to remember and use, although not as general. First, though, let's assume that you have created and plotted a figure, either from the command line or as part of an m-file. The figure you want to change is the current graphics object or gca, which basically means you clicked on the plot most recently of all the plots you have or you made an m-file. You can do this for any graphics object you want, but it's easier to remember (no handles) if it is the gca.
You'll use the commands like this. I've put in numbers for a fontsize of 16, but you can use anything you like.
xlabel('This is my x label','Fontsize',16);
ylabel('This is my y label','Fontsize',16);
title('This is my figure title','Fontsize',20);
When you look at the MATLAB documentation on these commands, you'll find that you can generalize most of them to do more tricks. Fontsize is by no means the only text property you can set. You can do this for other figures as well. However, most of what you want will be done by these simple and easy to remember commands.
You might find the following pretty neat. I developed a routine to do most of the common plot chores. It writes code that you can put in an m-file and it runs on the command line as well. I find it handy to use as a starting point for plots, then I modify the code in m-files for specific purposes.
% This routine sets up a dialog box for the user to enter values for a
% plot defaults. The routine then writes code to meet this and displays
% it.
% version v1.1 dated 8 June 2010 - added x and y limits
% Peter Wittenberg
prompt = {'Window Title Bar:','Axis fontsize:',...
'x variable name','y variable name','x label name','y label name',...
'x label font size','y label font size',...
'title text','title font size',...
'lower x limit','upper x limit','lower y limit','upper y limit',...
};
dialogTitle = 'Plotmaker - Insert values';
lines = 1;
def = {'Window Title','16',...
'x variable name','y variable name','x label name','y label name',...
'18','18',...
'title text','18','auto','auto','auto','auto'};
answer = inputdlg(prompt,dialogTitle,lines,def,'on');
limitsLines = {};
for index = 11:14
if ~strcmp (answer(index) , 'auto' )
limitsLines = cat(1,limitsLines,...
strcat('limits(', num2str(index-10) , ')= ', char(answer(index)) , ';'));
end;
end;
plotCode = { 'figure(...'
strcat('''Name'',''' , char(answer(1)) , ''',...')
'''NumberTitle'',''off'' ); % A new figure'
strcat('thePlot = axes(''Fontsize'',' , char(answer(2)) , ''');')
strcat('plot(' , char(answer(3)) , ',' , char(answer(4)) , ');')
strcat('xlabel(''' ,char(answer(5)) , ''',''Fontsize'',' , char(answer(7)) , ');')
strcat('ylabel(''' ,char(answer(6)) , ''',''Fontsize'',' , char(answer(8)) , ');')
strcat('titleText = ''', char(answer(9)) , ''';')
strcat('title(titleText, ''FontSize'',' , char(answer(10)) , ');')
'limits = axis();'
};
plotCode = cat(1,plotCode,limitsLines);
plotCode = cat(1,plotCode, 'axis(limits);');
u = (char(plotCode))';
disp(char(plotCode));
thePlotCommands = u(1:end);
thePlotCommands = strrep(thePlotCommands,'...','');
thePlotCommands = strrep(thePlotCommands,'% A new figure','');
eval(thePlotCommands);

Gurudatha Pai
Gurudatha Pai 2012년 2월 23일
you can set once using this command per matlab session or add this to your start-up program
set(0, 'DefaultAxesFontSize', AxisFontSize, 'DefaultAxesFontWeight', AxisFontWeight);

카테고리

Help CenterFile Exchange에서 Labels and Annotations에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by