带有text.usetex'true'的Axes字体不使用set font

时间:2015-01-14 09:58:31

标签: python matplotlib

我将matplotlibrc param文件中的字体样式设置为Helvetica(sans serif),并将text.usetex设置为' True'但是axis字体使用serif字体。如何让轴字体使用sans serif?

2 个答案:

答案 0 :(得分:0)

有时更改.matplolibrc是不够的。例如,在OS X中,Helvetica默认安装,但存储为Matplotlib无法访问的.dfont文件。如果是这种情况,您需要将其转换为.ttf并将其放在正确的文件夹中,以便matplotlib可以看到它。有关详细信息,请参阅here

这样的事情可以帮助您解决问题:

import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.font_manager as font_manager

path = '/home/username/Helvetica.ttf'
prop = font_manager.FontProperties(fname=path)
mpl.rcParams['font.family'] = prop.get_name()

fig, ax = plt.subplots()
ax.set_title('Test text', fontproperties=prop, size=40)

要查看您可以使用的所有字体:

import matplotlib.font_manager
print matplotlib.font_manager.findSystemFonts(fontpaths=None)

答案 1 :(得分:0)

我也遇到了这个问题,它通过为字体本身设置一个额外的rcparam来解决。即使用此代码可以解释您描述的问题:

import matplotlib.pyplot as plt
params = {
'text.usetex': True,
'font.family': 'sans'
}
plt.rcParams.update(params)

通过设置'font.sans'选项进行修改解决了我的问题:

import matplotlib.pyplot as plt
params = {
'text.usetex': True,
'font.family': 'sans',
'font.sans': 'cm'
}
plt.rcParams.update(params)