Glyph missing from current font.解决matplotlib画图中文字体乱码问题,plt.rcParams[‘font.sans-serif‘]=[‘SimHei‘]找不到

本文讲述了在Linux系统中解决Matplotlib绘图时缺少字体的问题,方法是将Windows字体文件复制到matplotlib的字体文件夹,并删除matplotlib缓存以确保正确显示图形。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个图中文显示不出来

我的是linux系统,估计是少了字体,所以在C盘底下Windows/Fonts里面复制所有的字体文件到matplotlib的字体文件里面,再删除缓存即可。

1.import matplotlib

2.print(matplotlib.matplotlib_fname())

输出:/home/augustine/anaconda3/envs/pt2/lib/python3.9/site-packages/matplotlib/mpl-data/matplotlibrc

看你打印什么就进入到打印路径的前一个目录mpl-data中

3.到/home/augustine/anaconda3/envs/pt2/lib/python3.9/site-packages/matplotlib/mpl-data/fonts

进入ttf目录

4.把windows字体统统复制到这里,有好几百mb...

5. 获取matplotib 缓存路径:

print(matplotlib.get_cachedir())

打印:/home/augustine/.cache/matplotlib

删除底下所有缓存(我这里删除这个json文件)就好了

这个警告通常出现在使用Matplotlib绘图时,特别是当绘制的文本包含中文字符时。警告提示当前使用的字体缺少某些中文字符。要解决这个问题,可以尝试以下几种方法: 1. 设置支持中文的字体: 在绘制图形之前,设置Matplotlib使用支持中文的字体。例如: ```python import matplotlib.pyplot as plt plt.rcParams['font.family'] = ['SimHei'] # 使用黑体 ``` 2. 更新Matplotlib字体缓存: 运行以下命令来更新Matplotlib的字体缓存: ```python from matplotlib.font_manager import FontProperties font_path = 'path/to/your/font.ttf' # 替换为你的字体文件路径 font_prop = FontProperties(fname=font_path) matplotlib.font_manager._rebuild() ``` 3. 安装中文字体: 确保你的系统中安装了中文字体。你可以从网上下载常用的中文字体(如SimHei, Microsoft YaHei等),然后安装到你的操作系统中。 4. 使用matplotlibrc文件: 编辑Matplotlib的配置文件matplotlibrc,font.family和font.sans-serif设置,添加你喜欢的中文字体。 5. 使用mpl.rcParams: 在代码中直接修改rcParams设置: ```python import matplotlib.pyplot as plt plt.rcParams['font.family'] = 'sans-serif' plt.rcParams['font.sans-serif'] = ['SimHei'] # 替换为你安装的中文字体 ``` 6. 使用unicode_minus参数: 如果你的图形中包含负号,可以设置: ```python plt.rcParams['axes.unicode_minus'] = False ``` 通过尝试这些方法,你应该能够解决Glyph缺失的问题,并正确显示中文字符。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值