macos下matplotlib中文乱码

macos 安装matplotlib

第一步是拷贝字体文件到文件目录下和删除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文件夹下?

posted @ 2017-11-20 21:48  E%L  阅读(996)  评论(0编辑  收藏  举报