I seem to have a problem in figuring out how to increase or decrease the fontsize
of both the x and y tick labels while using matplotlib
.
I am aware that there is the set_xticklabels(labels, fontdict=None, minor=False, **kwargs)
function, but I failed to understand how to control the fontsize
in it.
I expected something somehow explicit, like
title_string=('My Title') plt.suptitle(title_string, y=1.0, fontsize=17)
but I haven't found anything like that so far. What am I missing?
If we want to change the font size of the axis labels, we can use the parameter “fontsize” and set it your desired number.
You can set the fontsize directly in the call to set_xticklabels
and set_yticklabels
(as noted in previous answers). This will only affect one Axes
at a time.
ax.set_xticklabels(x_ticks, rotation=0, fontsize=8) ax.set_yticklabels(y_ticks, rotation=0, fontsize=8)
Note this method should only be used if you are fixing the positions of the ticks first (e.g. using ax.set_xticks
). If you are not changing the tick positions from the default ones, you can just change the font size of the tick labels without changing the text using ax.tick_params
ax.tick_params(axis='x', labelsize=8) ax.tick_params(axis='y', labelsize=8)
or
ax.tick_params(axis='both', labelsize=8)
You can also set the ticklabel
font size globally (i.e. for all figures/subplots in a script) using rcParams
:
import matplotlib.pyplot as plt plt.rc('xtick',labelsize=8) plt.rc('ytick',labelsize=8)
Or, equivalently:
plt.rcParams['xtick.labelsize']=8 plt.rcParams['ytick.labelsize']=8
Finally, if this is a setting that you would like to be set for all your matplotlib plots, you could also set these two rcParams
in your matplotlibrc
file:
xtick.labelsize : 8 # fontsize of the x tick labels ytick.labelsize : 8 # fontsize of the y tick labels
One shouldn't use set_yticklabels
to change the fontsize, since this will also set the labels (i.e. it will replace any automatic formatter by a FixedFormatter
), which is usually undesired. The easiest is to set the respective tick_params
:
ax.tick_params(axis="x", labelsize=8) ax.tick_params(axis="y", labelsize=20)
or
ax.tick_params(labelsize=8)
in case both axes shall have the same size.
Of course using the rcParams as in @tmdavison's answer is possible as well.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With