在matplotlib中使用数学输入时,如何将字体设置为Times New Roman。默认字体是斜体,我试图使其与其他轴标题匹配。
我正在尝试使用\ mathrm {}:
plt.xlabel(r"$\frac{\mathrm{1}}{{\mathrm{Distance}}^2 \ (\mathrm{m}^2)}$")
正如在matplotlib网站(https://matplotlib.org/users/mathtext.html)上所建议的那样,但它仍然显示为sans-serif字体。有没有办法让我成为Times new Roman?谢谢!
答案 0 :(得分:3)
解释您在轴上的文本中寻找serif字体的问题,以及在图上使用的任何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()
答案 1 :(得分:0)
另一个用例是希望在数学模式下使用衬线字体,但仅适用于特定字符。 solution用于将字体集设置为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}$)')