听起来这是一个简单的问题,但是我找不到在python中用matplotlib制作的图中更改字体(不是字体大小)的有效解决方案。
我找到了一些教程,可通过修改matplotlib存储默认字体的文件夹中的一些文件来更改matplotlib的默认字体-请参阅此博客文章-但我正在寻找一种不太激进的解决方案,因为我想使用多个我的绘图中的字体(文本,标签,轴标签等)。
听起来这是一个简单的问题,但是我找不到在python中用matplotlib制作的图中更改字体(不是字体大小)的有效解决方案。
我找到了一些教程,可通过修改matplotlib存储默认字体的文件夹中的一些文件来更改matplotlib的默认字体-请参阅此博客文章-但我正在寻找一种不太激进的解决方案,因为我想使用多个我的绘图中的字体(文本,标签,轴标签等)。
hfont = {'fontname':'Helvetica'} plt.annotate('Country ', (0.17,0.95), xytext=None, xycoords='figure fraction',size=28, color='red', horizontalalignment = 'left', **hfont)
,则错误是/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/font_manager.py:1236: UserWarning: findfont: Font family ['Helvetica'] not found. Falling back to Bitstream Vera Sans (prop.get_family(), self.defaultFamily[fontext]))
该代码起作用。
Answers:
假设您要标题为Comic Sans,x标签为Helvetica。
csfont = {'fontname':'Comic Sans MS'}
hfont = {'fontname':'Helvetica'}
plt.title('title',**csfont)
plt.xlabel('xlabel', **hfont)
plt.show()
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/font_manager.py:1236: UserWarning: findfont: Font family ['Helvetica'] not found. Falling back to Bitstream Vera Sans (prop.get_family(), self.defaultFamily[fontext]))
。如何在matplotlib已知的字体集中安装Helvetica?
Windows不附带Helvetica字体,因此,要使用它,必须将其下载为.ttf文件。然后,您可以像这样将matplotlib引用到它(用文件替换“ crm10.ttf”):
import os
from matplotlib import font_manager as fm, rcParams
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
fpath = os.path.join(rcParams["datapath"], "fonts/ttf/cmr10.ttf")
prop = fm.FontProperties(fname=fpath)
fname = os.path.split(fpath)[1]
ax.set_title('This is a special font: {}'.format(fname), fontproperties=prop)
ax.set_xlabel('This is the default font')
plt.show()
print(fpath)
将显示您应将.ttf放在哪里。
您可以在此处查看输出:https : //matplotlib.org/gallery/api/font_file.html
fontproperties
全局所以你不必每调用如指定它set_title()
,set_xlabel()
等等?