pandas 绘图title,xlabel,ylabel出现中文乱码的问题
在利用pandas汇总图形时,不可避免的需要填写X轴、Y轴代表的含义,但你会发现,设置中文往往会出现乱码现象,这是怎么回事呢?有要怎么解决呢?下面讲解一下。
import pandasas pd
from dateutil.parserimport parse
import datetimeas dt
import matplotlib.pyplotas plt
df= pd.DataFrame({'Date': ['2015-05-08','2015-05-07','2015-05-06','2015-05-05','2015-05-08','2015-05-07','2015-05-06','2015-05-05'],
'Sym': ['aapl','aapl','aapl','aapl','aapl','aapl','aaww','aaww'],
'Data2': [11,8,10,15,110,60,100,40],
'Data3': [5,8,6,1,50,100,60,120]})
df_Data3=df.groupby(df['Date'])['Data3'].agg({'sums':'sum'})
df_Data3.plot(kind='line')
plt.xlabel(u'日期')
plt.ylabel(u'数量')
plt.show()
原因是matplotlib.pyplot在显示时无法找到合适的字体。
先把需要的字体(在系统盘C盘的windows下的fonts目录内)添加到FontProperties中。
import pandasas pd
from dateutil.parserimport parse
import datetimeas dt
import matplotlib.pyplotas plt
from matplotlib.font_managerimport FontProperties
font_set= FontProperties(fname=r"c:\windows\fonts\simsun.ttc",size=12)
df= pd.DataFrame({'Date': ['2015-05-08','2015-05-07','2015-05-06','2015-05-05','2015-05-08','2015-05-07','2015-05-06','2015-05-05'],
'Sym': ['aapl','aapl','aapl','aapl','aapl','aapl','aaww','aaww'],
'Data2': [11,8,10,15,110,60,100,40],
'Data3': [5,8,6,1,50,100,60,120]})
df_Data3=df.groupby(df['Date'])['Data3'].agg({'sums':'sum'})
df_Data3.plot(kind='line')
plt.xlabel(u'日期',fontproperties=font_set)
plt.ylabel(u'数量',fontproperties=font_set)
plt.show()
好啦,就到这里了,谢谢。