当我尝试用matplotlib绘制一个图形时,我在x轴的标签上写了文字和“数学文本”。因为我必须在标签上写一个化学公式,所以它被写为“$CO_2$concentration”。问题是我希望字体应该是times new roman,但我无法改变美元符号的字体。有没有人可以帮助我解决这个问题?非常感谢!
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
xf1 = pd.read_excel('1812_GPT.xlsx',sheetname= 'PVD_CO2CH4_600',usecols=[1])
deltapx1 = pd.read_excel('1812_GPT.xlsx',sheetname= 'PVD_CO2CH4_600',usecols=[3])
Px1 = pd.read_excel('1812_GPT.xlsx',sheetname= 'PVD_CO2CH4_600',usecols=[5])
ax1 = plt.subplot(111)
l1, = ax1.plot(xf1,Px1,'s',markerfacecolor='black')
font1 = {'family' : 'Times New Roman',
'weight' : 'normal',
'size' : 14,
}
ax1.set_xlabel(r'$CO_2$ pressure', font1)
ax1.set_ylabel(r'$CO_2$ concentration', font1)
plt.show()
这是图片链接,你可能会看到图片,发现“二氧化碳”是不是在时代新罗马。https://flic.kr/p/2dmh8pj
3条答案
按热度按时间ztigrdn81#
我不认为将任何mathtext更改为任意字体是容易的。然而,如果
"CO_2"
仅由常规符号组成,您可以使用\mathdefault{}
使mathtext使用常规字体中的符号。像
r"$\mathdefault{\sum_\alpha^\beta\frac{i}{9}}$
这样的东西仍然会以通常的默认数学字体呈现(除了"i"
和9
,它们当然存在于Times New Roman中)。对于一般情况,您也可以将完整的数学字体集更改为任何可用的
cm
,stix
,stixsans
,dejavuserif
,dejavusans
。最接近“Times New Roman”的是stix
。阅读的一般建议是MathText tutorial。
0dxa2lsx2#
我发现一次定义整个字体家族比单独定义要好(假设你想要相同的字体)。
rbpvctlc3#
在这种情况下,数学文本字体将根据自定义字体的数学文本文档进行自定义。这有其自身的限制,但在您的基本情况下,将按预期工作。
x轴的代码如下:
ax1.set_xlabel(r'$\mathrm{CO_2}$ pressure')
,无需在标签中指定。注意事项:在这个场景中,我没有指定一个后备字体,这在更复杂的字符情况下可能是必要的。在上面链接的文档中有解释。