matplotlib繪圖顯示中文字符集
阿新 • • 發佈:2019-01-31
常規下在matplotlib中直接呼叫繪圖函式會發現中文字元亂碼,出現很多框框類的字元,
其實就是matplotlib不能正常顯示中文造成的,在繪圖前設定一下中文顯示引數即可解決。
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用來正常顯示中文標籤
plt.rcParams['axes.unicode_minus']=False #用來正常顯示負號
#如果要在圖片中顯示中文,需要使用 u'要顯示的內容'
這是比較簡單方便的做法,還有比較複雜的做法就是copy一款中文字型放到matplotlib的字型庫下,
然後在配置檔案 matplotlibrc 中將該字型加入到字型配置那裡 font.serif ,解開註釋,
程式中就可以直接使用中文而不用再進行什麼配置了,一勞永逸,就是比較麻煩。
下面給出中文字元顯示的測試程式:
import matplotlib.pyplot as plt import numpy as np import matplotlib plt.rcParams['font.sans-serif'] = ['SimHei'] # 用來正常顯示中文字元 plt.rcParams['axes.unicode_minus'] = False # 用來正常顯示正負號 # 這行可以顯示matplotlib的配置檔案的位置 print(matplotlib.matplotlib_fname()) x = np.linspace(1,4,100) y = x**x plt.plot(x,y, '+',label='y=x**x函式影象',color='black') plt.xlabel('這是x座標') plt.ylabel('這是y座標') plt.title('這是y=x**x的函式影象') plt.legend() plt.show()
註釋掉兩行配置檔案(其實第一行就行,第二行是顯示正負號的)時的效果
解開註釋加上配置後的效果圖: