我尝试了下面的代码,但我只收到了所有ttf字体文件的列表。
import matplotlib.font_manager as fm
for font in fm.findSystemFonts():
print font
我想也许我需要使用matplotlib中的findFont()函数,但我不确定如何使用它。我的目标是能够询问python它用于matplotlib的默认字体是什么,理想情况下,如果它不是Times New Roman我想将默认值更改为Times New Roman。此外,如果matplotlib库中不存在新的roman,那么如何将默认值更改为下一个最佳的serif字体。
答案 0 :(得分:2)
您可以使用rcParams
动态修改字体。请检查以下代码:
import matplotlib as mpl
mpl.rcParams['font.family'] = ['serif'] # default is sans-serif
mpl.rcParams['font.serif'] = [
'Times New Roman',
'Times',
'Bitstream Vera Serif',
'DejaVu Serif',
'New Century Schoolbook',
'Century Schoolbook L',
'Utopia',
'ITC Bookman',
'Bookman',
'Nimbus Roman No9 L',
'Palatino',
'Charter',
'serif']
这样,如果您的系统中有 Times New Roman ,matplotlib将在会话期间使用它,否则,它将尝试使用定义的下一个字体类型。看看here for more info。
如果要将参数重置为默认值,可以使用:
mpl.rcdefaults()
其他选项是使用您想要的设置use a stylesheet,您可以使用上下文管理器将该样式应用于所有绘图或仅应用于其中一些绘图。