永久解决 matplotlib 中文乱码

永久解决 matplotlib 中文乱码
2022年07月18日 18:30 AI科技大本营

作者 | 老表

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

首先需要你的电脑安装好了Python环境,并且安装好了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 pltfig1 = plt.figure()  # 先创建一个图像对象plt.pie([0.5, 0.3, 0.2],  # 值        labels=['我', '你', '它'],  # 标签        explode=(0, 0.2, 0),  # (爆裂)距离        autopct='%1.1f%%',   # 显示百分数格式        shadow=True)  # 是否显示阴影

plt.show() 

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部