Я нашел похожий вопрос в StackOverflow, который помог мне решить мою проблему.
Как Стоп Harm Monica предложил, обновив параметры mathtext.FontConstantBase
, упомянутые ниже помогает, если вы используете Arial. См. эту ссылку для получения дополнительной информации о mathtext
классах.
Следующий параметр обрабатывает все символы верхнего индекса. Он принимает число с плавающей запятой, например 0.5
:
mathtext.FontConstantsBase.sup1 = 0.5
Следующие два параметра обрабатывают нижние символы. Если я прав, sub1
обрабатывает нижние индексы, которые находятся в том же положении, что и верхние индексы, как в X^A_B
. С другой стороны, sub2
обрабатывает непарные символы нижнего индекса, такие как X_B
.
mathtext.FontConstantsBase.sub1 = 0.4
mathtext.FontConstantsBase.sub2 = 0.4
Обратите внимание, что на символ верхнего индекса влияет положение подстрочного параметра на выходном рисунке . Я обнаружил, что нет mathtext.FontConstantsBase.sup2
-параметра для решения этой проблемы.
Это модифицированный MWE, который я использовал:
# MWE update - python 3.6.4 // 3.7.2
import numpy as np
import matplotlib as mpl
import matplotlib.mathtext as mathtext
from matplotlib import rcParams
import matplotlib.pyplot as plt
from matplotlib.pyplot import plot, show
# -------------------------------------------------------------------
rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = ['Arial']
rcParams['font.size'] = 25
mathtext.FontConstantsBase.sup1 = 0.
mathtext.FontConstantsBase.sub1 = 1.
mathtext.FontConstantsBase.sub2 = 0.5
# labels in TeX-format are given in a different file in the original program
label_list=["[MX^A_B(^AY)_4]^-", "[MX(^AY)_4]^-"]
output_array = np.genfromtxt("oa.txt", dtype=float, delimiter=" ")
for ion in range(len(label_list)):
plt.plot(output_array[:,0], output_array[:,ion], marker="s", label=r"$\mathregular{%s}$" % (label_list[ion-1]))
plt.legend()
plt.show
, который выдает эту цифру .