【matplotlib】可视化解决方案——如何解决matplotlib中文乱码问题

问题概述

Matplotlib 默认不支持中文字体,这是因为 matplotlib 只支持 ASCII 字符,但是国人使用 matplotlib 肯定需要中文标注。如下图所示,当不对 Matplotlib 进行设置,而直接使用中文时,绘制的图像会出现中文乱码。

中文乱码

解决方案

由上图可知,本身应该出现中文的地方以方框进行显示,下文给出了两种解决方案,第一种是临时解决方案,第二种是永久性的解决方案。

重写配置信息

可以临时覆盖配置信息解决中文乱码的问题,其代码示例如下:

plt.rcParams["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams["axes.unicode_minus"]=False #该语句解决图像中的“-”负号的乱码问题

完整代码如下:

import numpy as np  
import matplotlib.pyplot as plt

plt.rcParams["font.sans-serif"]=["SimHei"] #设置字体
plt.rcParams["axes.unicode_minus"]=False #该语句解决图像中的“-”负号的乱码问题

fig, ax = plt.subplots(1, 1)  
ax.set_facecolor("lemonchiffon")  
  
x = np.random.random(100)  
y = np.random.random(100)  
ax.scatter(x, y, marker='o')  
ax.set_xlim(-0.02, 1.02)  
ax.set_ylim(-0.02, 1.02)  
ax.set_title("标题", fontsize=15)  
ax.set_xlabel("横轴")  
ax.set_ylabel("纵轴")  
plt.show()

画图结果如下:


代码重写配置信息

修改配置文件

通过直接修改配置文件的方法,可以一劳永逸的解决 Matplotlib 的中文乱码问题。注意此过程在 Windows 环境下进行。一般情况下 matplotlib 从配置文件 matplotlibrc 中读取配置信息,比方说字体、样式等,首先需要确定配置文件的路径,使用以下代码可以确定配置文件的路径:

import matplotlib as mpl
print(mpl.matplotlib_fname())

输出结果如下:

D:\ProgramData\Anaconda3\lib\site-packages\matplotlib\mpl-data\matplotlibrc

然后修改配置文件 matplotlibrc。打开配置文件后,找到以下信息:

#font.family:  sans-serif
#font.style:   normal
#font.variant: normal
#font.weight:  normal
#font.stretch: normal
#font.size:    10.0

更改配置信息并保存,这样就永久性的更改了 matplotlib 的默认字体了。

往期回顾

  1. 【matplotlib】可视化解决方案——如何设置matplotlib风格集
  2. 【matplotlib】可视化解决方案——如何设置轴标签的透明度和大小
  3. 【matplotlib】可视化解决方案——如何向图表中添加数据表
  4. 【matplotlib】可视化解决方案——如何更改绘图区域背景颜色
  5. 【matplotlib】可视化解决方案——如何使用数学公式
  6. 【matplotlib】可视化解决方案——绘图刻度设置
  7. 【matplotlib】可视化解决方案——子图设置大标题问题解决方案
  8. 【matplotlib】可视化解决方案——子图间距问题解决方案
  9. 【matplotlib】可视化解决方案——joinstyle参数详解
  10. 【matplotlib】可视化解决方案——capstyle参数详解+

文中难免会出现一些描述不当之处(尽管我已反复检查多次),欢迎在留言区指正,相关的知识点也可进行分享,希望大家都能有所收获!!如果觉得我的文章写得还行,不妨支持一下。你的每一个转发、关注、点赞、评论都是对我最大的支持!

你可能感兴趣的:(【matplotlib】可视化解决方案——如何解决matplotlib中文乱码问题)