Python畫圖顯示方塊或亂碼的問題一次性永久解決
阿新 • • 發佈:2018-12-16
當我們滿心歡喜的拿到一個數據集準備處理時,卻發現特徵都是中文的,頓時心中就打起了鼓來,不敢確定在處理資料,或者資料視覺化時會出什麼么蛾子。但是沒辦法只能硬著頭皮上啊。
那麼接下來李小寬頻你來解決這個令人問題:
問題:
看吧,明明很不容易從幾百個特徵中挑出幾個來想看看皮爾遜相關度矩陣,結果成了這樣,全是方塊。
(加# -*- coding: utf-8 -*-也不管用sa)
解決:
步驟一:開啟ipython什麼的(只要能執行Python程式碼就好啦)
import matplotlib
matplotlib.matplotlib_fname()
會顯示matplotlibrc檔案的地址: 'c:\\users\\dell\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\matplotlib\\mpl-data\\matplotlibrc'(這是我噠)
步驟二:修改matplotlibrc檔案 將檔案中的
#font.family: sans-serif
在註釋的下一行,新增一行:
#font.family: Microsoft YaHei
就可顯示為中文
下面我再來試驗下:
# 特徵間相關性分析 # 挑選一些主要的特徵,生成特徵之間的關聯圖,檢視特徵與特徵之間的相關性: #指定預設字型 matplotlib.rcParams['font.sans-serif'] = ['SimHei'] matplotlib.rcParams['font.family']='sans-serif' #解決負號'-'顯示為方塊的問題 matplotlib.rcParams['axes.unicode_minus'] = False Correlation = pd.DataFrame(ip[ [u'身高', u'體重',u'也不知道是啥',u'是否正常.2',u'是否正常.3', u'升高.1', u'降低', u'是否正常.4', u'升高.2', u'降低.1', u'是否正常.5', u'是否正常.6', u'是否正常.7',u'尿pro',u'是否正常.8', u'是否正常.9', u'是否正常.10',u'西醫診斷/支氣管肺炎']]) colormap = plt.cm.viridis plt.figure(figsize=(14,12)) plt.title('Pearson Correlation of Features', y=1.05, size=15) # sns.heatmap(Correlation.astype(float).corr(),linewidths=0.1,vmax=1.0, square=True, cmap=colormap, linecolor='white', annot=True) # plt.show() sns.heatmap(Correlation.astype(float).corr(),linewidths=0.1,vmax=1.0, square=True, cmap="YlGnBu", linecolor='white', annot=True) plt.show()
從此以後大家就可以安心處理資料,視覺化啦。