matplotlib圖例中文亂碼以及坐标負号顯示
在圖檔的标簽名,标題名或者圖例中出現中文時,直接運作會出現亂碼,文字顯示為框框
import matplotlib.pyplot as plt
plt.figure()
plt.title("哈哈")
plt.show()

快速解決辦法
在導入子產品後加入下面代碼
plt.rcParams['font.sans-serif']=['SimHei'] # 用來正常顯示中文标簽
plt.rcParams['axes.unicode_minus']=False # 用來正常顯示負号
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.figure()
plt.title("哈哈")
plt.show()
永久解決辦法
找到自己想要的中文字型
- 在系統中查找已有的字型(好處是不需要安裝):在“C:\Windows\Fonts”中選擇字尾為“.ttf”的中文字型并複制,這一步我選擇了黑體
- 在 fontpalace 上下載下傳對應版本的字尾為“.ttf”的字型,複制到“C:\Windows\Fonts”中安裝
把字型複制到matplotlib的字型檔案中
輸入下面指令找到matplotlib配置檔案
在“c:\program files\python37\lib\site-packages\matplotlib\mpl-data\matplotlibrc”的“font/ttf”檔案夾中粘貼剛剛複制的字型,然後修改配置檔案matplotlibrc,去掉以下三行代碼開頭的#
font.family : sans-serif
font.sans-serif : SimHei, DejaVu Sans, Bitstream Vera Sans, ... # 這裡注意要把字型名稱SimHei放在第一個
axes.unicode_minus : False # 修改為False,作用是解決負号的亂碼問題
還要注意有的字型名稱并不是字型檔案的名稱,可以檢視字型檔案的屬性(标題)确認一下
重新加載字型
做完以上操作後執行下面指令
from matplotlib.font_manager import _rebuild
_rebuild()
之後重新開機python,很多時候這樣就解決了。
删除matplotlib緩存檔案
如果仍然不能正常顯示輸入以下代碼
在’C:\Users\sunch\.matplotlib’找到緩存檔案夾并删除該檔案夾,之後重新開機python,如果還是不行可以試試重新開機電腦,我就是重新開機了才可以,果然沒有什麼是一次重新開機解決不了的,如果有那就兩次