2017-02-20 2 views
1

Ich mache ein Raster von Plots mit matplotlib.pyplot.subplots, und ich möchte die Tick-Etiketten in LaTeX Sans-Serif-Schriftart, aber wenn ich Subplots verwenden, bekomme ich immer mindestens eine Tick-Label gerendert in der Standardschriftart von Matplotlib.Inkonsistente Tick Etiketten Schriftart mit Matplotlib Subplots

Hier ist ein 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() 

Wenn Sie die fig, axes = plt.subplots Zeile aus kommentieren, die Strichbeschriftungen angezeigt werden, wie sie sollten.

Ich verwende Python-Version 3.6.0 und matplotlib Version 2.0.0

Antwort

3

Änderungen der rcParams sollte immer so schnell wie möglich und unbedingt vor den Objekten gemacht werden, die sie betreffen erstellt werden.

Damit die rc Änderungen an der Spitze setzt, wird das Problem behoben:

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

Follow-up-Frage (und vielen Dank für die Antwort): warum nicht 'plt.text' oder' plt.xlabel' in LaTeX Schrift anzeigen? Angenommen, das Programm ist ansonsten das gleiche wie in Ihrem asnwer. – user3087409

+0

In meinem Fall tun sie. Das Problem für mich scheint eher, dass die Ticklabels der Sans-Serif-Eigenschaft nicht gehorchen. – ImportanceOfBeingErnest

Verwandte Themen