解决python使用matplotlib绘图中文乱码
前言
- Python编程中,我们常常需要使用matplotlib绘图(科研论文、数据分析等),当我们需要给标题或坐标等设置中文描述时,采用默认的matplotlib设置会遇到显示成方框形的问题,对此,需要通过修改matplotlib配置文件或者直接在代码中设置指定中文字体来解决这个问题,本文将分别介绍两种方法的具体步骤,以及方法的对比!
- 解决方法有两类:永久生效、临时设置
如果本文对您有帮助,不妨一键三连哟!您的支持和关注是博主创作的动力!
参考资料
解决方法(动态设置字体)
-
永久设置:修改matplotlib配置文件
- 查看配置文件路径: 注:如果使用conda虚拟环境时,执行时注意进入相应的环境后再执行以下命令,否则修改的配置文件可能不是对应使用的环境!
import matplotlib matplotlib.matplotlib_fname()
-
向ttf文件夹添加中文字体【本文设置simhei字体(点击下载)】
-
修改配置文件:
①去掉注释:
②去掉注释并添加中文字体名(向ttf文件夹添加的中文字体名):
③去掉注释:
-
临时设置:在代码中指定字体(方便自定义字体,个人推荐)
- 查看matplotlib字体所在文件夹(将ttf字体放置到ttf文件夹中)【本文设置simhei字体(点击下载)】
import matplotlib matplotlib.matplotlib_fname()
- 代码中设置绘图的字体
import matplotlib matplotlib.rcParams['font.sans-serif'] = ['SimHei'] matplotlib.rcParams['font.family']='sans-serif' #解决负号'-'显示为方块的问题 matplotlib.rcParams['axes.unicode_minus'] = False
- 之后即可正常绘图,设置中文信息了
-
方法对比:
方法 | 临时修改 | 永久修改 |
---|---|---|
灵活性 | 灵活修改字体 | 固定设置字体 |
便捷性 | 每个py文件均需要设置 | 一次设置,永久生效 |
转载自:https://juejin.cn/post/7082344514655879176