macos下matplotlib中文亂碼

macos 安裝matplotlibhtml

第一步是拷貝字體文件到文件目錄下和刪除matplolib字體緩存文件python

 ~\site-packages\matplotlib\mpl-data\fonts\ttf\(就是這)macos

import matplotlib print(matplotlib.matplotlib_fname()) # 會顯示路徑 ~\site-packages\matplotlib\mpl-datawindows

 網上其它人在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字體可不改spa

第三步code

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文件夾中,字體名字和字體文件名字未必相同,最好先查一下htm

 

最後誰知道是否能夠不復制字體文件到mp-data文件夾下?blog

相關文章
相關標籤/搜索