大家好,我是早起。 在使用matplotlib進行可視化時,一個令人頭疼的問題就是如何正確的顯示中文,有時你百度后各種嘗試,可能遇到中文還是顯示一堆無效的框框,那么本文就將提供三種解決辦法,希望能夠幫助到大家。 首先我們需要知道,為什么中文不能被正確顯示?比如你使用 所以本質上就是matplotlib的中文字體文件沒有被正確設置。在下面給出的三個解決辦法中,我不能確保一定能對你的電腦生效(畢竟有些時候因為環(huán)境導致的差異確實很麻煩),但是只要你清晰了解決思路(讓matplotlib正確找到中文字體文件),一定能搞定! 一、麻煩但一定能解決的辦法首先給出的是一個99%概率能讓你正確顯示中文的方法,但不是一勞永逸的辦法,所以略顯麻煩。 上面我們說了,之所以不能輸出中文,就是因為matplotlib找不到中文字體文件,怎么辦?我們就強制指定一個中文字體文件,按住matplotlib的頭,讓他遇到中文就讀取這個字體。 比如我們先下載一個想要的中文字體文件,比如微軟雅黑吧,下載到本地并復制它的絕對路徑,然后使用 import matplotlib as mpl 之后在需要輸出中文的地方,添加
中文正確出來了有沒有!理論上這個辦法無視環(huán)境,不論Mac還是Win下,只要你的中文字體文件路徑沒有問題,一定能把中文顯示出來。 但是正如標題所說的:麻煩,只要需要輸出中文,你就要加上 所以這個方法適用于緊急使用或者在非常用電腦下,沒空折騰其他方法時使用。 二、可能是簡單好用的辦法第二個辦法是相對簡單一點(不用安裝任何字體,也不用修改路徑),但是在有些電腦上可能會失效(小概率)。 其實matplotlib也內置了很多字體,我們可以使用下面的代碼查看 import matplotlib as mpl 我們可以看到原來內置了這么多字體文件,所以只需要找到其中的中文字體并指定就行了,當然從幾百個字體名中找到中文字體是比較繁瑣的 我自己測試下面三個都是OK的
所以只需要使用 plt.rcParams['font.sans-serif'] = ['Songti SC'] 可以看到,中文也成功輸出了。 為什么說這個辦法不一定有效,因為不知道是由于版本原因還是電腦的原因,在有些電腦上我沒法正常使用這個辦法。 但這個方法值得一試,因為太簡單了。所以你可以直接使用 至于 折騰但一勞永逸的辦法這是一個需要折騰一會,也是大多數教程推薦的方法,但是由于環(huán)境的問題,可能有些機器折騰很久才能成功。 回想上面第一種方法是強制指定matplotlib讀取本地字體文件,第二種方法是嘗試從默認字體文件中讀取中文字體,那么將本地字體文件添加到默認字體中就是第三種辦法! 這里我以mac系統(tǒng)下,在 首先我們打開
這一步就是找到你的matplotlib配置文件所在位置,如果你同時安裝了anaconda又單獨裝了個Python或者是你有多個版本matplotlib(可能你都不知道為什么),就會導致你用別人教程中的路徑修改后會報錯。 所以我們必須找到當前notebook,使用的 解析來進入打印出來的目錄,我們需要關注的就是一個字體文件,下載你要的字體比如黑體(simhei.ttf),放入ttf文件夾中,之后找到 |
|