Matplotlibで、f-stringの値を下付き又は上付きにしたいときに、どうすればよいか?
調べたところ以下のサイトに回答がありました。
覚えとしてここに乗せておきます。
How to display LaTeX f-strings in matplotlib
結論として
変数を{{{}}} 3重かっこでくくればよいようです。
Latexで
下付きは、a_{123}
上付きは、a^{123}
と書きます。
f-stringでは、
変数 xyz = 123とすると
f'{xyz}'
と書きます。
Matplotlibでこの二つを合わせると
f'$a_{{{xyz}}}$'
なおMatplotlibでLaTexを使うときには$$で囲う必要があります。
いろいろと書いてみた例
import matplotlib.pyplot as plt
import numpy as np
plt.figure()
plt.plot([1,2,3], [3,4,5])
a = 123.56789
var = 123
bp=555
plt.text(1, 4,f'text$_{{{var}}}$')
plt.xlabel(f'Intensity$^{{1/{a:.0f}}}$')
# plt.xlabel(r"$\theta$")
# plt.ylabel(r"$\sin \, \theta, ln{x}$")
# r"を使わない場合\\を2つ入れる
plt.ylabel(f"$sin\\theta\\psi, ln{{x}}$")
plt.title(f"$R^2$, $R^{2}_{{{bp}}}$, $ln{{x}}$")
print(f'$intensity_{{{a:.2f}}}$')
print(f'text$_{{{a}}}$')
print(f'Intensity$^{{1/{a:.0f}}}$')