原因: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()