如何更改matplotlib图中的字体大小
怎么才能改变matplotlib图表上所有元素(刻度、标签、标题)的字体大小呢?
我知道怎么改变刻度标签的大小,可以用下面的代码:
import matplotlib
matplotlib.rc('xtick', labelsize=20)
matplotlib.rc('ytick', labelsize=20)
但是其他的部分该怎么改变呢?
16 个回答
270
如果你想要改变已经创建好的某个图表的字体大小,可以试试这个方法:
import matplotlib.pyplot as plt
ax = plt.subplot(111, xlabel='x', ylabel='y', title='title')
for item in ([ax.title, ax.xaxis.label, ax.yaxis.label] +
ax.get_xticklabels() + ax.get_yticklabels()):
item.set_fontsize(20)
622
如果你像我一样喜欢控制一切,你可能会想要明确设置所有的字体大小:
import matplotlib.pyplot as plt
SMALL_SIZE = 8
MEDIUM_SIZE = 10
BIGGER_SIZE = 12
plt.rc('font', size=SMALL_SIZE) # controls default text sizes
plt.rc('axes', titlesize=SMALL_SIZE) # fontsize of the axes title
plt.rc('axes', labelsize=MEDIUM_SIZE) # fontsize of the x and y labels
plt.rc('xtick', labelsize=SMALL_SIZE) # fontsize of the tick labels
plt.rc('ytick', labelsize=SMALL_SIZE) # fontsize of the tick labels
plt.rc('legend', fontsize=SMALL_SIZE) # legend fontsize
plt.rc('figure', titlesize=BIGGER_SIZE) # fontsize of the figure title
注意,你也可以通过在 matplotlib
上调用 rc
方法来设置字体大小:
import matplotlib
SMALL_SIZE = 8
matplotlib.rc('font', size=SMALL_SIZE)
matplotlib.rc('axes', titlesize=SMALL_SIZE)
# and so on ...
1131
来自 matplotlib 文档,
font = {'family' : 'normal',
'weight' : 'bold',
'size' : 22}
matplotlib.rc('font', **font)
这段代码会把所有项目的字体设置为 kwargs
对象中指定的字体,也就是 font
。
另外,你也可以使用 rcParams
的 update
方法,正如在 这个回答 中提到的那样:
matplotlib.rcParams.update({'font.size': 22})
或者
import matplotlib.pyplot as plt
plt.rcParams.update({'font.size': 22})
你可以在 自定义 matplotlib 页面 找到所有可用属性的完整列表。