2017-02-20 153 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