Mac 系统下 解决python matplot画图中文乱码问题和plot.show()无响应问题

本文介绍了在Mac系统中解决Python使用Matplotlib库画图时出现中文乱码及plot.show()无响应的问题。通过设置matplotlib配置参数,导入'Arial Unicode MS'字体,以及修改配置文件,可以成功显示中文并避免plot.show()无响应。此外,还提供了相关测试代码以验证解决方案。

#Mac 系统下 解决python matplot画图中文乱码问题和plot.show()无响应问题

参考:https://www.zhihu.com/question/25404709

网络上大多是关于Windows的教程。mac上可以照着配置如下:
mac请优先尝试这篇文章提到的方法:
https://blog.youkuaiyun.com/qq_32590631/article/details/80509741

import numpy as np import matplotlib.pyplot as plt
plt.rcParams[‘font.sans-serif’] = [‘Arial Unicode MS’]
然后就可以愉快的使用中文label和legend了

如果上面的起作用,下面的内容请跳过。

1.百度搜索字体simhei,放到类似于
/Users/xxxxx/anaconda/lib/python2.7/site-packages/matplotlib/mpl-data/fonts/ttf
目录中
点击这里下载

2.删除
/Users/lizhen/.matplotlib/fontList.cache
/Users/lizhen/.matplotlib/*.cache最好都删除
3.修改配置文件
/Users/lizhen/anaconda/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc
找到font.family和font.sans-serif两项,将#注释去掉,打开。
font.family : sans-serif
font.sans-serif : SimHei,
4.代码部分
import matplotlib.pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

5.最后附上测试代码,其中有解决plot.show()无响应的方法

#encoding=utf-8
import matplotlib
matplotlib.use('TkAgg')#这两句用来解决plot.show()后没有反应的问题
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

names = ['5', '10', '15', '20', '25']
x = range(len(names))
y = [0.855, 0.84, 0.835, 0.815, 0.81]
y1=[0.86,0.85,0.853,0.849,0.83]
#plt.plot(x, y, 'ro-')
#plt.plot(x, y1, 'bo-')
#pl.xlim(-1, 11)  # 限定横轴的范围
#pl.ylim(-1, 110)  # 限定纵轴的范围
plt.plot(x, y, marker='o', mec='r', mfc='w',label=u'y=x^2曲线图')
plt.plot(x, y1, marker='*', ms=10,label=u'y=x^3曲线图')
plt.legend()  # 让图例生效
plt.xticks(x, names, rotation=45)
plt.margins(0)
plt.subplots_adjust(bottom=0.15)
plt.xlabel(u"time(s)邻居") #X轴标签
plt.ylabel("RMSE") #Y轴标签
plt.title("A simple plot") #标题
plt.show()
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值