下标不是使用matplotlib的新罗马时代

时间:2018-08-02 07:30:29

标签: python matplotlib latex

我使用matplotlib进行绘制和绘制新的罗马字体。但是,在最新版本中,下标不在Times New Roman中,而其他文本在Times New Roman中。外观如下。

figure1

例如,代码为

import matplotlib as mlp,numpy as np
mlp.rc('font',family='Times New Roman')
import matplotlib.pyplot as plt
fig = plt.figure();
plt.xlabel('N$_{sou}$=20',fontsize=20)
plt.show()

,数字是 figure2

下标“ sou”不在Times New Roman中,而“ N”在Times New Roman中。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在TeX数学模式下,标准显示带有专用数学字体(通常是所用字体的斜体)的数学表达式。 Matplotlib似乎模仿了这种行为。在TeX(或LaTeX)中,您可以使用mathrm命令来恢复旧字体,该命令似乎在matplotlib中也可以使用,如下所示:

import matplotlib as mlp,numpy as np
mlp.rc('font',family='Times New Roman')
import matplotlib.pyplot as plt
fig,axes = plt.subplots(1,2);
axes[0].set_xlabel('N$_{sou}$=20',fontsize=20)
axes[0].set_title('normal math mode')
axes[1].set_xlabel('N$_\mathrm{sou}$=20', fontsize=20)
axes[1].set_title('using \mathrm')
plt.show()

result of above code