1. 程式人生 > >matplotlib繪圖顯示中文字符集

matplotlib繪圖顯示中文字符集

常規下在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()

註釋掉兩行配置檔案(其實第一行就行,第二行是顯示正負號的)時的效果

解開註釋加上配置後的效果圖: