web-dev-qa-db-ja.com

matplotlibでサンセリフの上付きまたは下付きテキストを作成するにはどうすればよいですか?

Matplotlib Figureの軸ラベルに下付き文字を使用したいのですが。 LaTeXを使用して$N_i$に設定すると、イタリックのセリフフォントが得られます。 \mathrmを使用して、斜体以外の数学フォントを取得できることを知っています。しかし、デフォルトのmatplotlib sans-serifフォントのテキストを取得して、図の他のテキストと一致させたいと思います。ラテックスを使用せずにテキストを下付きにする方法はありますか?

19
frixhax

使用する \mathregularは、mathtext以外の通常のテキストに使用されるフォントを使用します。

$\mathregular{N_i}$

詳細については、 ここ を参照してください。

20
skytux

rcParamsをカスタマイズすることで実行できます。カスタマイズする要素が複数ある場合は、それらをdictとして保存し、 `rcParams 'を更新できます。

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

単一の変更を行う場合は、次のように入力するだけです。

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

この点で、簡単な例は次のようになります。

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

RcParamsの詳細については、 matplotlibのドキュメント を参照してください。

17
T-800