带有matplotlib子图的不一致的刻度标签字体

时间:2017-02-20 13:59:39

标签: python matplotlib tex subplot

我正在使用matplotlib.pyplot.subplots创建一个情节网格,我希望刻度标签采用LaTeX的sans-serif字体,但是当我使用子图时,我总是至少得到一个以matplotlib的默认字体呈现的刻度标签。

这是一个MWE:

import matplotlib.pyplot as plt

fig, axes = plt.subplots(nrows=1, ncols=1)
x = [1,2,3,4,5]
plt.plot(x)
plt.rc('text', usetex=True)
plt.rc('font', family='sans-serif')
plt.show()

如果您注释掉fig, axes = plt.subplots行,则刻度标签会按原样显示。

我使用python版本3.6.0和matplotlib版本2.0.0

1 个答案:

答案 0 :(得分:3)

rcParams的更改应始终尽快进行,并且必须在创建它们影响的对象之前进行。

因此,将rc更改置于顶部,可以解决问题:

import matplotlib.pyplot as plt
plt.rc('text', usetex=True)
plt.rc('font', family='sans-serif')

fig, axes = plt.subplots(nrows=1, ncols=1)
x = [1,2,3,4,5]
plt.plot(x)

plt.show()