解决matplotlib完美中文显示

python中使用matplotlib显示中文时,会遇到一些问题, 解决方案如下:

import matplotlib.pyplot as plt
# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号

看看效果:

# 看看图怎么分布
import matplotlib.pyplot as plt
# 支持中文
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号
# 打开图柄
fig = plt.figure()

# 设定图表颜色alpha参数
fig.set(alpha=0.2)  
# 在一张大图里分列几个小图
plt.subplot2grid((2,3),(0,0))
# plots a bar graph of those who surived vs those who did not.
data_train.Survived.value_counts().plot(kind='bar')
# puts a title on our graph
plt.title(u"获救情况 (1为获救)") 
plt.ylabel(u"人数")  

# 第二张图
plt.subplot2grid((2,3),(0,1))
# Pclass => 乘客等级(1/2/3等舱位)的分布情况
data_train.Pclass.value_counts().plot(kind="bar")
plt.ylabel(u"人数")
plt.title(u"乘客等级分布")

# 第三张图,看下年龄和营救的分布
plt.subplot2grid((2,3),(0,2))
plt.scatter(data_train.Survived, data_train.Age)

# sets the y axis lable
plt.ylabel(u"年龄")              

# formats the grid line style of our graphs
plt.grid(b=True, which='major', axis='y') 
plt.title(u"按年龄看获救分布 (1为获救)")

# 第四张图,二行一列
plt.subplot2grid((2,3),(1,0), colspan=2)
# plots a kernel desnsity estimate of the subset of the 1st class passanges's age
data_train.Age[data_train.Pclass == 1].plot(kind='kde')
data_train.Age[data_train.Pclass == 2].plot(kind='kde')
data_train.Age[data_train.Pclass == 3].plot(kind='kde')
plt.xlabel(u"年龄")# plots an axis lable
plt.ylabel(u"密度") 
plt.title(u"各等级的乘客年龄分布")
plt.legend((u'头等舱', u'2等舱',u'3等舱'),loc='best') # sets our legend for our graph.

# 第五张图,二行二列
plt.subplot2grid((2,3),(1,2))
data_train.Embarked.value_counts().plot(kind='bar')
plt.title(u"各登船口岸上船人数")
plt.ylabel(u"人数")  
plt.show()



本文于 2020-01-13 10:38 由作者进行过修改

本文链接:https://itarvin.com/detail-30.aspx

登录或者注册以便发表评论

登录

注册