繁体   English   中英

使Matplotlib在数学模式下显示衬线字体

[英]Make matplotlib display serif font in math mode

在使用matplotlib进行数学运算时,如何获得字体为Times New Roman的字体。 默认字体为斜体,我正在尝试使其与其他坐标轴标题匹配。

我正在尝试使用\\ mathrm {}:

plt.xlabel(r"$\frac{\mathrm{1}}{{\mathrm{Distance}}^2 \ (\mathrm{m}^2)}$")

就像在matplotlib网站( https://matplotlib.org/users/mathtext.html )上所建议的一样,但它仍然以无衬线字体显示。 有什么方法可以使我成为时代新罗马人吗? 谢谢!

解释您要在轴上的文本以及绘图中使用的任何MathText中寻找衬线字体的问题。

import matplotlib.pyplot as plt
plt.rcParams["font.family"] = "serif"
plt.rcParams["mathtext.fontset"] = "dejavuserif"

plt.xlabel(r"$\frac{\mathrm{1}}{{\mathrm{Distance}}^2 \ (\mathrm{m}^2)}$")
plt.ylabel("Some normal text")
plt.tight_layout()
plt.show()

在此处输入图片说明

另一个用例是希望在数学模式下使用衬线字体,但仅适用于特定字符。 一种解决方案是将fontset设置为custom ,然后仅对mathcal (书法)字符集设置衬线字体。 在这里,我还将字体样式设置为斜体:

import matplotlib.pyplot as plt

plt.rcParams['mathtext.fontset'] = 'custom'
plt.rcParams['mathtext.cal'] = 'stix:italic'  # changes only the mathcal subfamily

然后,获取单个衬线字符(此处为d),但其余部分保留为默认的数学字体,具体方法如下:

plt.ylabel(r'Label ($a^b = \mathcal{d}$)')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM