原因:matplotlib默認字體并不是中文字體。
解決方法:將某中文字體設為默認首選字體,本文擬將默認字體設為微軟雅黑。
環境:win7 x64, python2.7
過程:
在python的安裝目錄中找到配置文件:%Python_Home%\Lib\site-packages\matplotlib\mpl-data\matplotlibrc,用任意文本編輯器打開。(最好先備份一下)
找到第139行:#font.family, 將其注釋去掉,冒號后面的值改為Microsoft YaHei
找到第151行:#font.sans-serif, 將其注釋去掉,并將Microsoft YaHei添加到冒號后面的最前面,注意還要再加一個英文逗號(,)
為保險其間,到C:\Windows\Fonts\中找到微軟雅黑對應的字體文件msyh.ttf,將其復制到D:\Python32\Lib\site-packages\matplotlib\mpl-data\fonts\ttf\目錄下
import pandas as pd
import numpy as np
from pandas import DataFrame,Series
import matplotlib.pyplot as plt
df=pd.read_csv('survey_results2.csv')
df
df1=DataFrame(df)
df2=df1.ix[:,3:13]
df2
result=df2.apply(pd.value_counts).fillna(0)
t=result.T
ax=t.plot(kind='bar')
# labels
ax.set_xlabel(u"問題編號")
ax.set_ylabel(u"學生數量")
# title
ax.set_title(u"總體滿意度")
plt.legend([u"不滿意",u"一般",u"滿意",u"非常滿意"])# make legend
plt.show()