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?
One shouldn't use set_yticklabels
to change the fontsize, since this will also set the labels (ie 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.
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 (eg 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 (ie 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
使用关键字size
而不是fontsize
。
It is simpler than I thought it would be.
To set the font size of the x-axis ticks:
x_ticks=['x tick 1','x tick 2','x tick 3']
ax.set_xticklabels(x_ticks, rotation=0, fontsize=8)
To do it for the y-axis ticks:
y_ticks=['y tick 1','y tick 2','y tick 3']
ax.set_yticklabels(y_ticks, rotation=0, fontsize=8)
The arguments rotation
and fontsize
can easily control what I was after.
Reference: http://matplotlib.org/api/axes_api.html
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.