Python:如何增加/减少x和y刻度标签的字体大小?

时间:2015-11-30 15:10:42

标签: python text matplotlib axis-labels kwargs

在使用fontsize时,我似乎在弄清楚如何增加或减少x和y刻度标签的matplotlib时遇到了问题。

我知道有set_xticklabels(labels, fontdict=None, minor=False, **kwargs)函数,但我无法理解如何控制其中的fontsize

我期待一些明确的东西,比如

title_string=('My Title')
plt.suptitle(title_string, y=1.0, fontsize=17)

但到目前为止我还没有找到类似的东西。我错过了什么?

4 个答案:

答案 0 :(得分:11)

您可以直接在set_xticklabelsset_yticklabels的调用中设置fontsize(如前面的答案中所述)。这一次只会影响一个Axes

ax.set_xticklabels(x_ticks, rotation=0, fontsize=8)
ax.set_yticklabels(y_ticks, rotation=0, fontsize=8)

您还可以使用rcParams全局设置ticklabel字体大小(即脚本中的所有数字/子图):

import matplotlib.pyplot as plt

plt.rc('xtick',labelsize=8)
plt.rc('ytick',labelsize=8)

或等同地:

plt.rcParams['xtick.labelsize']=8
plt.rcParams['ytick.labelsize']=8

最后,如果这是您要为所有matplotlib图设置的设置,您还可以在rcParams文件中设置这两个matplotlibrc

xtick.labelsize      : 8 # fontsize of the x tick labels
ytick.labelsize      : 8 # fontsize of the y tick labels

答案 1 :(得分:3)

不应该使用set_yticklabels来更改字体大小,因为这也会设置标签(即它将用FixedFormatter代替任何自动格式化程序),这通常是不希望的。最简单的方法是设置相应的tick_params

ax.tick_params(axis="x", labelsize=8)
ax.tick_params(axis="y", labelsize=20)

ax.tick_params(labelsize=8)

如果两个轴的尺寸相同。

当然也可以使用@tmdavison's answer中的rcParams。

答案 2 :(得分:2)

它比我想象的要简单。

设置x轴刻度的字体大小:

x_ticks=['x tick 1','x tick 2','x tick 3']
ax.set_xticklabels(x_ticks, rotation=0, fontsize=8)

为y轴刻度执行此操作:

y_ticks=['y tick 1','y tick 2','y tick 3']
ax.set_yticklabels(y_ticks, rotation=0, fontsize=8)

参数rotationfontsize可以轻松控制我的目标。

参考:http://matplotlib.org/api/axes_api.html

答案 3 :(得分:1)

使用关键字size代替fontsize