5.289 views (last 30 days)

I'm using "set(gca,'fontsize', 18);" in a function to change fonts in a figure. My code does not throw an error, but it also does not change the font size. I can manually change the fonts via the UI, but this is a slow process. I'm running MATLAB 2013a on RHEL6.5

I've also tried "set(gca,'FontSize', 18);" and specifying 'FontSize', 18 in title, xlabel, ylabel and legend. None of these have worked.

Please advise!

Image Analyst
on 27 May 2014

Usually you can set the font size on every control individually as you update its text, like

title('This is my plot', 'FontSize', 24);

xlabel('x axis', 'FontSize', 24);

text(x, y, 'Hey, look at this', 'FontSize', 24);

What's wrong with doing it like that? That's what I do.

Mike Garrity
on 10 Feb 2016

Yes, this can be confusing. Here's what you're probably seeing:

figure % Creates a figure

set(gca,'FontSize',18) % Creates an axes and sets its FontSize to 18

plot(x,y) % Resets the axes and plots into it

Notice the "Resets the axes" part. One of the things that happens there is that the FontSize property gets set to the default!

This doesn't happen when hold is on because then the axes doesn't get reset.

There are a couple of ways around this.

The simplest is to set the FontSize after plotting.

A somewhat more complicated way is to change the default:

figure('DefaultAxesFontSize',18)

plot(x,y)

Does that make sense?

José Crespo Barrios
on 10 Feb 2016

set(findall(gcf,'-property','FontSize'),'FontSize',18)

Ian Hunter
on 19 Sep 2017

When I invoke this after a call to figure, there does not appear to be any change in text size.

Sign in to comment.

Sean de Wolski
on 27 May 2014

I think what you want to do is set the 'Default' font size for the axes

set(gca,'DefaultTextFontSize',18)

Now any text object on that axes will have 18 font

text(0.5,0.5,'hello')

Image Analyst
on 29 May 2014

Edward's "Answer" moved here since it's a reply to Sean:

set(gca,'DefaultTextFontSize',18) executes without triggering an error, but unfortunately, does not change the font size.

Sign in to comment.

Daniel
on 26 Mar 2015

I just wanted to weigh in on this given I've spent the last couple of hours looking into this.

I am running Matlab 2013b on Ubuntu 12.04LTS. Similar as many here, changing labels/legend properties works fine but setting the axis ticklabel fontname/size was not working - at least, the axis property list reflected the change, but the window plot was not rendering to the new font settings. After printing the plot to eps and including this in my latex compiled document, it turns out the axis font properties were changing. It would appear to be just a rendering bug.

Installing additional fonts did not work for me - and I did not expect to, since rendering/changing font properties of other objects such as labels and legends worked fine in Matlab.

So for those of you cocnerned with the looks of your plots for publications, it would appear to me that the actual exported figures do reflect the editing (at least this was my experience when printing to .eps).

Cheers,

Daniel

Sign in to comment.

Renato Campana
on 18 Nov 2017

Im working with Matlab 2016. You can tried two things:

1)figure('DefaultAxesFontSize',30); % here the font size is 30. figure (1) plot(x,y,'LineWidth',4); % note that the linewidth here is 4 xlabel('length bar','FontSize',18); % note that the font size label here is 18 ylabel('wide bar','FontSize',18); % note that the font size label here is 18

and you must to use the dame command figure('DefaultAxesFontSize',30) in each figure. If you dont specified the font size in each label, the labels shows the size in "30"

Or you can tried:

2) figure (1) plot(x,y,'LineWidth',4); set(gca,'FontSize',28); % please, note that the font size is AFTER the plot command :)

Sign in to comment.

Sign in to answer this question.

Opportunities for recent engineering grads.

Apply Today
## 7 Comments

## Direct link to this comment

https://de.mathworks.com/matlabcentral/answers/131236-how-do-i-change-the-font-size-for-text-in-my-figure#comment_216066

⋮## Direct link to this comment

https://de.mathworks.com/matlabcentral/answers/131236-how-do-i-change-the-font-size-for-text-in-my-figure#comment_216066

## Direct link to this comment

https://de.mathworks.com/matlabcentral/answers/131236-how-do-i-change-the-font-size-for-text-in-my-figure#comment_260878

⋮## Direct link to this comment

https://de.mathworks.com/matlabcentral/answers/131236-how-do-i-change-the-font-size-for-text-in-my-figure#comment_260878

## Direct link to this comment

https://de.mathworks.com/matlabcentral/answers/131236-how-do-i-change-the-font-size-for-text-in-my-figure#comment_265799

⋮## Direct link to this comment

https://de.mathworks.com/matlabcentral/answers/131236-how-do-i-change-the-font-size-for-text-in-my-figure#comment_265799

## Direct link to this comment

https://de.mathworks.com/matlabcentral/answers/131236-how-do-i-change-the-font-size-for-text-in-my-figure#comment_325409

⋮## Direct link to this comment

https://de.mathworks.com/matlabcentral/answers/131236-how-do-i-change-the-font-size-for-text-in-my-figure#comment_325409

## Direct link to this comment

https://de.mathworks.com/matlabcentral/answers/131236-how-do-i-change-the-font-size-for-text-in-my-figure#comment_352543

⋮## Direct link to this comment

https://de.mathworks.com/matlabcentral/answers/131236-how-do-i-change-the-font-size-for-text-in-my-figure#comment_352543

## Direct link to this comment

https://de.mathworks.com/matlabcentral/answers/131236-how-do-i-change-the-font-size-for-text-in-my-figure#comment_396894

⋮## Direct link to this comment

https://de.mathworks.com/matlabcentral/answers/131236-how-do-i-change-the-font-size-for-text-in-my-figure#comment_396894

## Direct link to this comment

https://de.mathworks.com/matlabcentral/answers/131236-how-do-i-change-the-font-size-for-text-in-my-figure#comment_485684

⋮## Direct link to this comment

https://de.mathworks.com/matlabcentral/answers/131236-how-do-i-change-the-font-size-for-text-in-my-figure#comment_485684

Sign in to comment.