第一步是拷贝字体文件到文件目录下和删除matplolib字体缓存文件
~\site-packages\matplotlib\mpl-data\fonts\ttf\(就是这)
import matplotlib print(matplotlib.matplotlib_fname()) # 会显示路径 ~\site-packages\matplotlib\mpl-data
网上其它人在windows下都不拷贝字体文件到目录中,但是我在mac下必须拷贝,不知道原因。然后就是删除~/.cache/matplotlib/下的文件
第二步是修改matplotlib下的font_manager.py源文件以适应*.ttc字体文件
def get_fontext_synonyms(fontext): """ Return a list of file extensions extensions that are synonyms for the given file extension *fileext*. """ return {'ttf': ('ttf', 'otf'), # 此行改为'ttf': ('ttf', 'otf', 'ttc'), 'otf': ('ttf', 'otf'), 'afm': ('afm',)}[fontext]
如果使用*.ttf字体可不改
第三步
myfont = matplotlib.font_manager.FontProperties(fname='/System/Library/Fonts/PingFang.ttc') print(myfont.get_name()) # =>PingFang HK matplotlib.rcParams['font.sans-serif'] = 'PingFang HK' matplotlib.rcParams['axes.unicode_minus'] = False # -符号 plt.title("哈哈") plt.show()
PingFang.ttc文件要拷贝进matplotlib下的ttf文件夹中,字体名字和字体文件名字未必相同,最好先查一下
最后谁知道是否可以不复制字体文件到mp-data文件夹下?