永久解决matplotlib中文乱码

简说Python

共 2297字,需浏览 5分钟

 · 2021-09-25

来源:简说Python

作者:老表

大家好,我是老表,今天给大家分享一个永久解决matplotlib中文乱码的笔记,希望对大家有所帮助。

首先需要你的电脑安装好了Python环境,并且安装好了Python开发工具。

如果你还没有安装,可以参考以下文章:

如果仅用Python来处理数据、爬虫、数据分析或者自动化脚本、机器学习等,建议使用Python基础环境+jupyter即可,安装使用参考Windows/Mac 安装、使用Python环境+jupyter notebook

如果想利用Python进行web项目开发等,建议使用Python基础环境+Pycharm,安装使用参考:Windows下安装、使用Pycharm教程,这下全了 和 Mac下玩转Python-安装&使用Python/PyCharm 。

首先下载下黑体字体库,这里我已经下载好了,大家在微信公众号简说Python回复:字体,即可获取下载地址。


  • 查看matplotlib安装目录
import matplotlib
# 查了安装路径
print(matplotlib.get_data_path()) 

'''
/Users/hhh/Library/Python/3.7/lib/python/site-packages/matplotlib/mpl-data
'''

  • 将下载好的字体复制到mpl-data/fonts/ttf目录下
  • 修改matplotlib设置文件,在mpl-data/matplotlibrc,利用文本模式打开即可,修改三个地方,修改好后保存即可:
# 第一个地方:font.family: sans-serif这一句前面的#去掉
font.family:  sans-serif  
# 第二个地方:在:(冒号)后加一个SimHei
font.sans-serif: SimHei, DejaVu Sans, Bitstream ...
# 第三个地方:axes.unicode_minus后的值改为False
axes.unicode_minus: False
  • 我们需要重新加载字体配置 如果你的matplotlib是3+以下,可以使用以下代码实现该步操作:
from matplotlib.font_manager import _rebuild
_rebuild()

如果你的matplotlib是3+及以上,在这些版本中私有方法_rebuild已被弃用,所以没法使用上面方法进行重新加载,不过更简单的,你只需要重新启动下你的python环境就可以了。

以jupyter为例子,点一下图中按钮重启内核,再运行代码即可显示中文。要是还是不行,查看下matplotlib缓存存放位置,然后删除,再重启jupyter notebook试试。

# matplotlib缓存的目录 
import matplotlib 
print(matplotlib.get_cachedir())
'''
/Users/hhh/.matplotlib
'''

这个小绘图示例也给到大家方便检测。

# 随便绘制一个饼图
import matplotlib.pyplot as plt

fig1 = plt.figure()  # 先创建一个图像对象
plt.pie([0.50.30.2],  # 值
        labels=['我''你''它'],  # 标签
        explode=(00.20),  # (爆裂)距离
        autopct='%1.1f%%',   # 显示百分数格式
        shadow=True)  # 是否显示阴影
plt.show() 


点赞+留言+转发,就是对我最大的支持啦~


--End--


文章点赞超过100+

我将在个人视频号直播(老表Max)

带大家一起进行项目实战复现



扫码即可加我微信

老表朋友圈经常有赠书/红包福利活动

点击上方卡片关注公众号,回复:1024
领取最新Python学习资源

学习更多:
整理了我开始分享学习笔记到现在超过250篇优质文章,涵盖数据分析、爬虫、机器学习等方面,别再说不知道该从哪开始,实战哪里找了
点赞”就是对博主最大的支持 
浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报