Python: 如何increase/reduce x 和y 刻度标签的字体大小?
Python: How to increase/reduce the fontsize of x and y tick labels?
在使用 matplotlib
时,我似乎无法弄清楚如何增加或减少 x 和 y 刻度标签的 fontsize
。
我知道有set_xticklabels(labels, fontdict=None, minor=False, **kwargs)
函数,但是我没看懂怎么控制里面的fontsize
。
我期待一些明确的东西,比如
title_string=('My Title')
plt.suptitle(title_string, y=1.0, fontsize=17)
但到目前为止我还没有找到类似的东西。我错过了什么?
使用关键字 size
而不是 fontsize
。
比我想象的要简单。
设置 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)
参数rotation
和fontsize
可以轻松控制我所追求的。
您可以直接在对 set_xticklabels
and set_yticklabels
的调用中设置字体大小(如之前的回答所述)。这一次只会影响一个 Axes
。
ax.set_xticklabels(x_ticks, rotation=0, fontsize=8)
ax.set_yticklabels(y_ticks, rotation=0, fontsize=8)
请注意,只有在您首先固定刻度的位置时才应使用此方法(例如使用 ax.set_xticks
)。如果您不更改默认的刻度位置,您可以使用 ax.tick_params
更改刻度标签的字体大小而不更改文本
ax.tick_params(axis='x', labelsize=8)
ax.tick_params(axis='y', labelsize=8)
或
ax.tick_params(axis='both', labelsize=8)
您还可以使用 rcParams
:
全局设置 ticklabel
字体大小(即脚本中的所有 figures/subplots)
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 图设置的设置,您还可以在 matplotlibrc
文件中设置这两个 rcParams
:
xtick.labelsize : 8 # fontsize of the x tick labels
ytick.labelsize : 8 # fontsize of the y tick labels
不应该使用 set_yticklabels
来更改字体大小,因为这也会设置标签(即它将用 FixedFormatter
替换任何自动格式化程序),这通常是不希望的。最简单的就是分别设置tick_params
:
ax.tick_params(axis="x", labelsize=8)
ax.tick_params(axis="y", labelsize=20)
或
ax.tick_params(labelsize=8)
以防两个轴的大小相同。
当然也可以使用 中的 rcParams。
在使用 matplotlib
时,我似乎无法弄清楚如何增加或减少 x 和 y 刻度标签的 fontsize
。
我知道有set_xticklabels(labels, fontdict=None, minor=False, **kwargs)
函数,但是我没看懂怎么控制里面的fontsize
。
我期待一些明确的东西,比如
title_string=('My Title')
plt.suptitle(title_string, y=1.0, fontsize=17)
但到目前为止我还没有找到类似的东西。我错过了什么?
使用关键字 size
而不是 fontsize
。
比我想象的要简单。
设置 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)
参数rotation
和fontsize
可以轻松控制我所追求的。
您可以直接在对 set_xticklabels
and set_yticklabels
的调用中设置字体大小(如之前的回答所述)。这一次只会影响一个 Axes
。
ax.set_xticklabels(x_ticks, rotation=0, fontsize=8)
ax.set_yticklabels(y_ticks, rotation=0, fontsize=8)
请注意,只有在您首先固定刻度的位置时才应使用此方法(例如使用 ax.set_xticks
)。如果您不更改默认的刻度位置,您可以使用 ax.tick_params
ax.tick_params(axis='x', labelsize=8)
ax.tick_params(axis='y', labelsize=8)
或
ax.tick_params(axis='both', labelsize=8)
您还可以使用 rcParams
:
ticklabel
字体大小(即脚本中的所有 figures/subplots)
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 图设置的设置,您还可以在 matplotlibrc
文件中设置这两个 rcParams
:
xtick.labelsize : 8 # fontsize of the x tick labels
ytick.labelsize : 8 # fontsize of the y tick labels
不应该使用 set_yticklabels
来更改字体大小,因为这也会设置标签(即它将用 FixedFormatter
替换任何自动格式化程序),这通常是不希望的。最简单的就是分别设置tick_params
:
ax.tick_params(axis="x", labelsize=8)
ax.tick_params(axis="y", labelsize=20)
或
ax.tick_params(labelsize=8)
以防两个轴的大小相同。
当然也可以使用