python3,matplotlib绘图,title、xlabel、ylabel、图例等出现中文乱码

1、有乱码问题的代码如下
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
file=“4.0datatxt/kz.csv”
df=pd.read_csv(file,header=None)
plt.figure()
x=df.iloc[0:,[1,2]].values

plt.scatter(x[0:,0],x[0:,1],color=‘red’,marker=‘o’,label=“裤子”)
plt.xlabel(“展现量”)
plt.ylabel(“点击量”)
plt.legend(loc=“best”)
plt.show()
2、运行结果如下图,其中,中文都为乱码。
在这里插入图片描述
3、原因
matplotlib.pyplot在显示时无法找到合适的字体,默认的使用的字体里没有中文,要在有中文的地方加上中文相关的字体,不然会因为没有字体显示成放框。
先把需要的字体(在系统盘C盘的windows下的fonts目录内)添加到FontProperties中。
另外说明:python3使用matplotlib画图,因python3默认使用中unicode编码。所以在写代码时不再需要写 plt.xlabel(u’ 展现量’),而是直接写plt.xlabel(‘展现量’)

4、解决办法
(1)加入和修改代码如下:
from matplotlib.font_manager import FontProperties
font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)
……
scatter(x[0:,0],x[0:,1],color=‘red’,marker=‘o’,label=“裤子”)
plt.xlabel(“展现量”,fontproperties=font_set)
plt.ylabel(“点击量”,fontproperties=font_set)
plt.legend(prop=font_set,loc=“best”)
#plt.legend(loc=“upper left”)
plt.title(‘裤子’, fontproperties=font_set)
(2)修改后完整代码如下
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
font_set = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=12)

file=“4.0datatxt/kz.csv”
df=pd.read_csv(file,header=None)
plt.figure()
x=df.iloc[0:,[1,2]].values

plt.scatter(x[0:,0],x[0:,1],color=‘red’,marker=‘o’,label=“裤子”)
plt.xlabel(“展现量”,fontproperties=font_set)
plt.ylabel(“点击量”,fontproperties=font_set)
plt.legend(prop=font_set,loc=“best”)
#plt.legend(loc=“upper left”)
plt.title(‘裤子’, fontproperties=font_set)
plt.show()

(3)运行结果如下图
在这里插入图片描述

  • 11
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值