如何防止Matplotlib中字体系列的更改?

如何防止Matplotlib中字体系列的更改?,matplotlib,fonts,python-3.7,Matplotlib,Fonts,Python 3.7,我已经编写了一个简单的代码来绘制两个函数-f(x)和g(x)。我的字体有问题。我已经将“Times New Roman”定义为全局字体,但是如果我尝试使用斜体-$$,字体会发生变化。我希望函数f(x)和g(x)中的变量x是斜体,并且是“Times New Roman” 可以看出,f中的x和图例中的g都是斜体,但不是“Times New Roman”字体 这是我的代码,我使用的是python 3.7 import scipy as sy from matplotlib import pyplo

我已经编写了一个简单的代码来绘制两个函数-f(x)和g(x)。我的字体有问题。我已经将“Times New Roman”定义为全局字体,但是如果我尝试使用斜体-$$,字体会发生变化。我希望函数f(x)和g(x)中的变量x是斜体,并且是“Times New Roman”

可以看出,f中的x和图例中的g都是斜体,但不是“Times New Roman”字体

这是我的代码,我使用的是python 3.7

import scipy as sy
from matplotlib import  pyplot as plt

x = sy.linspace(0, 4.188, 100)

y1 = -sy.sqrt(x) - x*sy.sqrt(x) + 0.4*x**2
y2 = - sy.exp(0.25*x) + x**0.6

plt.rcParams['font.family']='Times New Roman'

fig_1 = plt.figure(1, figsize=(1.25*6.4,1.25*4.8))

chart_1 = fig_1.add_subplot(1,1,1)

chart_1.plot(x,y1, '-k', linewidth = 2, label = 'f($x$)')
chart_1.plot(x,y2, '-b', linewidth = 2, label = 'g($x$)')

chart_1.tick_params(direction='in', size=8, width=1.0, labelsize=20)

chart_1.set_xlabel('time, s', fontsize = 24)
chart_1.set_ylabel('Force, N', fontsize = 24)

chart_1.set_xlim(0,5)
chart_1.set_ylim(-4,0)

chart_1.xaxis.set_ticks_position('both')
chart_1.yaxis.set_ticks_position('both')

chart_1.legend(fontsize = '20',bbox_to_anchor=(0.85,.7), edgecolor='k', borderpad = .25)

plt.show()

有解决此问题的方法吗?

美元符号之间的文本
$…$
不是斜体,而是发送到进行处理的文本

根据上面的链接,mathtext有自己的rc参数和更改所用字体的方法,包括使用
$\mathdefault{…}$
来匹配常规文本。但是,如果您不想使用无法用普通文本书写的符号和方程式,最好不要使用mathtext