標籤:

解決matplotlib中無法顯示【中文】的問題

問題描述

python中的matplotlib默認是不顯示中文的,繪製圖像的時候中文會變成小方格子。其實matplotlib是支持中文編碼的,造成這個現象的原因是,matplotlib庫的配置信息裡面沒有中文字體的相關信息。

請見最後一段代碼,圖像的標題和坐標軸都以中文命名。

import pandas as pd #數據分析nimport numpy as np #科學計算nfrom pandas import Series, DataFramenimport matplotlib.pyplot as pltnndata_train = pd.read_csv(train.csv)nnfig = plt.figure()nfig.set(alpha=0.2) #設置圖表顏色alpha參數nnplt.subplot2grid((2,3),(0,0)) #在一張大圖裡分列幾個小圖ndata_train.Survived.value_counts().plot(kind="bar") #柱狀圖nplt.title(u"獲救情況(1為獲救)") #標題nplt.ylabel(u"人數")n

圖像如下圖所示:

解決辦法

其實方法有很多種,最簡單的就是導入pylab數據包:

from pylab import mplnnmpl.rcParams[font.sans-serif] = [FangSong] #指定默認字體:仿宋nmpl.rcParams[axes.unicode_minus] = False #解決保存圖像是負號-顯示為方塊的問題n

這是修改後的代碼,供參考:

import pandas as pd #數據分析nimport numpy as np #科學計算nfrom pandas import Series, DataFramenimport matplotlib.pyplot as pltnnfrom pylab import mpl #顯示中文字體nmpl.rcParams[font.sans-serif] = [FangSong] #指定默認字體:仿宋nmpl.rcParams[axes.unicode_minus] = False #解決保存圖像是負號-顯示為方塊的問題nnndata_train = pd.read_csv(train.csv)nnfig = plt.figure()nfig.set(alpha=0.2) #設置圖表顏色alpha參數nnplt.subplot2grid((2,3),(0,0)) #在一張大圖裡分列幾個小圖ndata_train.Survived.value_counts().plot(kind="bar") #柱狀圖nplt.title(u"獲救情況(1為獲救)") #標題nplt.ylabel(u"人數")n

推薦閱讀:

Python 機器學習之 SVM 預測買賣(標的物:比特幣)
草根學Python(三)List 和 Tuple
使用vs code進行Python編程,如何進行input輸入?
UserDict、UserString、UserList存在的意義
發布Python桌面應用程序(入門)

TAG:Matplotlib | Python |