2014-12-30 5 views
13

Ich möchte einen Index in einer Achsenbeschriftung in einer Matplotlib-Figur verwenden. Mit LaTeX würde ich es als $N_i$ setzen, was mir die kursive Serif-Schriftart gibt. Ich weiß, dass ich non-italic Mathfont mit \mathrm bekommen kann. Aber ich möchte den Text in der Standardschriftart Matplotlib Sans-Serif erhalten, damit er mit dem Rest des Textes in der Figur übereinstimmt. Gibt es eine Möglichkeit, Text ohne Latex zu indizieren?Wie mache ich Sans Serif hochgestellten oder tiefgestellten Text in Matplotlib?

Antwort

15

Verwenden \mathregular die Schriftart für normalen Text außerhalb von mathtext verwendet zu verwenden:

$\mathregular{N_i}$ 

Werfen Sie einen Blick here für weitere Informationen.

13

Sie können es tun, indem Sie rcParams anpassen. Wenn Sie mehrere Elemente anzupassen, können Sie speichern sie als dict und das Update des `rcParams':

params = {'mathtext.default': 'regular' }   
plt.rcParams.update(params) 

Wenn Sie eine einzige Änderung zu tun, können Sie einfach eingeben:

plt.rcParams.update({'mathtext.default': 'regular' }) 

In dieser Hinsicht ein triviales Beispiel wäre wie folgt:

import numpy as np 
from matplotlib import pyplot as plt 

x = np.linspace(1, 10, 40) 
y = x**2 

fig = plt.figure() 
ax = fig.add_subplot(111) 
params = {'mathtext.default': 'regular' }   
plt.rcParams.update(params) 
ax.set_xlabel('$x_{my text}$') 
ax.set_ylabel('$y_i$') 
ax.plot(x, y) 
ax.grid() 
plt.show() 

enter image description here

Sie können weitere Informationen zu RcParams in der matplotlib documentation finden.

Verwandte Themen