如何将字体系列设置为“字体”;“埃瑞文”;在matplotlib中使用Latex时?

如何将字体系列设置为“字体”;“埃瑞文”;在matplotlib中使用Latex时?,matplotlib,latex,tex,Matplotlib,Latex,Tex,我对轴标签使用latex格式,对一些绘图使用轴刻度标签。我的问题是latex字体与非latex字体不同,后者是“Erewohn”。所以我想尝试在latex格式中使用'Erewohn' 我尝试了多种方法,如以下代码: fig, ax1 = plt.subplots(figsize = (8,5)) rcParams = [{'text.usetex': True, 'svg.fonttype': 'none', 'text.latex.preamble': r

我对轴标签使用latex格式,对一些绘图使用轴刻度标签。我的问题是latex字体与非latex字体不同,后者是“Erewohn”。所以我想尝试在latex格式中使用'Erewohn'

我尝试了多种方法,如以下代码:

fig, ax1 = plt.subplots(figsize = (8,5))

rcParams = [{'text.usetex': True,
         'svg.fonttype': 'none',
         'text.latex.preamble': r'\usepackage{erewhon}',
         'font.size': 20,
         'font.family': 'erewhon',
         'mathtext.fontset': 'custom',
         'mathtext.rm': 'erewhon',
         'mathtext.it': 'erewhon',
         'mathtext.bf': 'erewhon'}]


xlabel='Oxygen mass flow (sccm)'
ylabel1=r'$\mathrm{\rho \; (\mu \Omega \cdot cm)}$'

ax1.semilogy(xfit, ( np.exp(m*xfit+b) ) , 'k-', lw=2)
ax1.set_yscale('log')

ax1.set_xlabel(xlabel, fontsize=20)
ax1.set_ylabel(ylabel1, fontsize=20)
这段代码将xlabel字体设置为“Erewohn”,但ylabel仍然使用任何字体(我甚至不知道是哪种),尽管我使用了\mathrm{}。这个问题有什么解决办法吗? 谢谢你的帮助

在这里应用Ralf Stubner的代码

import matplotlib.pyplot as plt

preamble = [r"\usepackage[proportional,scaled=1.064]{erewhon}", 
            r"\usepackage[erewhon,vvarbb,bigdelims]{newtxmath}", 
            r"\usepackage[T1]{fontenc}",
            r"\renewcommand*\oldstylenums[1]{\textosf{#1}}"]

rcParams = {'text.usetex': True,
         'svg.fonttype': 'none',
         'text.latex.preamble': preamble,
         'font.size': 20,
         'font.family': 'erewhon'}
plt.rcParams.update(rcParams)

fig, ax1 = plt.subplots(figsize = (8,5))



xlabel='Oxygen mass flow (sccm)'
ylabel1=r'$\mathrm{\rho \; (\mu \Omega \cdot cm)}$'

#ax1.semilogy(xfit, ( np.exp(m*xfit+b) ) , 'k-', lw=2)
ax1.set_yscale('log')

ax1.set_xlabel(xlabel, fontsize=20)
ax1.set_ylabel(ylabel1, fontsize=20)

plt.tight_layout()
plt.show()
产生


我想
erewhon
font没有数学模式符号?如果您使用该字体编译latex文档,数学模式(例如,
$5\times 10^{-3}$
)是否会以所需字体显示?尝试加载
newxMath
,使用选项
erewhon
除了
erehon
包,c.f.@ImportanceOfBeingErnest是的,它似乎出现在“erewhon”字体中,或者至少是衬线字体。@RalfStubner不幸的是,它没有解决我的问题,标签仍然以latex无衬线字体显示:(请注意,在这里显示的代码中,您没有将rc参数应用于matplotlib的
rcParams
,因此它们被忽略。是的!!这正是我需要的,非常感谢!我从一个星期以来一直在努力解决这个问题!!我想我现在只需要使用siunitx包来显示\Omega。谢谢!!:)@izyq2q
siuntx
是一个好主意。作为一个最小的修复方法,使用
ylabel1=r'$\rho\;(\mu\Omega\cdot\mathrm{cm})$'