2017-02-20 155 views
1

我使用matplotlib.pyplot.subplots制作了一个plot的网格,我希望刻度标签是LaTeX的sans-serif字体,但是当我使用subplots时,我总是至少得到一个刻度标签以matplotlib的默认字体呈现。与matplotlib subplots不一致的刻度标签字体

这里有一个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

回答

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() 
+0

跟进问题(和感谢的回答):为什么不'plt.text'或'plt.xlabel'在LaTeX字体中显示?假设该程序与其他程序相同。 – user3087409

+0

在我的情况下,他们这样做。对我来说,问题似乎更多的是标签不遵守sans-serif属性。 – ImportanceOfBeingErnest