在Mac OS系統中的python中matplotlib畫圖的一系列問題

在Mac OS系統中的python中matplotlib畫圖的一系列問題

由於本人學習需要,所以今年剛從windows轉到Mac OS,其中的不適應不言而喻,前幾天下載了Anoconda,並配置了python3.6環境,安裝了一系列的安裝包,都沒有出什麼問題,但是正當我開始調試以前在windows跑的程序的時候,問題就來了…

問題一:Matplotlib無法在pycharm上畫圖的問題

導入其他庫(如numpy,pandas),並跑了一些簡單的程序都一切正常,唯獨導入matplotlib庫的時候,不管怎樣也畫不了圖,直接上圖:
在這裏插入圖片描述
不知道在這裏插入圖片描述
不知道爲什麼總是報‘NSInvalidArgumentException’錯誤,上網百度了類似情況沒能有效解決,也請問了其他用mac OS系統的師兄,他們都沒有這個問題,瞬間崩潰(難道買的盜版?),後來看到一個博客,找到了解決辦法(治標),如圖:
一定要在導入matplotlib.pyplot庫之前插入第1和2行,否則是無效的
一定要在導入matplotlib.pyplot庫之前插入第1和2行,否則是無效的!!!
結果如圖:
在這裏插入圖片描述
正當我欣喜之餘,隨便加了幾個畫圖代碼,結果卻缺又出來一個問題…【心塞】

問題二:Matplotlib畫圖出現中文亂碼問題

之前在我的windows電腦上使用Matplotlib畫圖出現中英文亂碼問題,直接兩句話就搞定了:

mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False

可可可是,到了Mac這裏,根本不起作用【不是說好Mac適合用於編程開發的嘛mmp,怎麼比windows還難搞定】
於是只能又去百度,各種各樣的方法都去試了,卻很少有能夠很好解決的…哇,花了我一個早上的時間終於搞定了…【有一句mmp不知當講不當講】
親測正確做法
第一步:
先下載中文字體,這裏我下載的是黑體,好人做到底吧,提供一個字體的下載鏈接:
https://www.fontpalace.com/font-details/SimHei/
下載完成後安裝,最終就是一個ttf格式的文件就可以了
第二步:
找到你的matplotlib安裝包【對於剛入Mac小白的我又花了好久的時間】,爲了還有像我這樣小白的人避免再走彎路,直接貼所有詳細過程:
打開Finder,找到Macintosh HD(如果沒有,就打開Finder的偏好設置在這裏插入圖片描述
因爲我是用Anaconda安裝的,所以這裏只介紹Anaconda安裝下的Matplotlib的安裝路徑:anaconda3>>lib>>python3.6>>sites-packages>>matplotlib>>mpl-data>>fonts>>ttf,圖片長這樣:
在這裏插入圖片描述
最後一個就是我下載的字體SimHei,當然啦在此之前就是將我們先下載好的字體直接拖到這個文件夾裏,就是上圖所示!
第三步:
找到matplotlibrc文件,更改裏面的3處配置,如圖:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
取消兩個註釋‘#’,將“True”改成“False”
最後一步:
這不也是最關鍵的,也是我找了很久才找到的解決方法:就是配置好了以上所有之後,我們需要重新加載一下我們的之前下載的字體:
代碼如下:

from matplotlib.font_manager import _rebuild
_rebuild()

完成上述所有步驟就可以解決我所遇到的所有問題了【滿臉的心酸啊】
最後貼一個成功的簡單實例:

import matplotlib as mpl
mpl.use("TkAgg")
import matplotlib.pyplot as plt
import numpy as np
mpl.rcParams['font.sans-serif'] = ['SimHei']
mpl.rcParams['axes.unicode_minus'] = False
x=np.linspace(-5,5,1000)
y=np.log(1+np.exp(x))
plt.title(u'Softmax激活函數')
plt.plot(x,y)
plt.show()

結果:
在這裏插入圖片描述

參考鏈接
[1]: https://www.zhihu.com/question/25404709
[2]: https://www.if404.com/2018/01/18/matplotlib-chinese-unicode-support/
如果有更好的解決辦法歡迎告知,不勝感激!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章