Linux无root权限解决matplotlib中文字体各种疑难杂症

问题简述

python经典中文字体问题,非管理员、无root环境下 matplotlib;seaborn 设置中文。

在使用yolov5训练的时候,报Warming

Plotting labels to runs/train/exp4/labels.jpg... 
/****/backend_agg.py:238: RuntimeWarning: Glyph 22823 missing from current font.

其最大的影响就是,生成的label.jpg,图片上中文字被方框替代。

findfont: Font family ['SimHei'] not found. Falling back to DejaVu Sans.
findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans.

问题分析

linux缺中文字体是一件很常见的事情。

因为图片识别需要消耗大量CPU、GPU资源,电脑GPU资源吃紧,所以寻找了一些专门的服务器训练。

这些jupyter服务器&#

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
matplotlib中设置中文字体有多种方法,以下是其中的几种常用方法: 方法一:使用matplotlib默认字体库中的字体 可以使用`matplotlib.rc()`函数来设置全局的字体样式。首先将字体样式通过字典的方式封装起来,然后调用`matplotlib.rc("font", **font)`进行设置。其中`font`是一个字典,可以指定字体的家族(`family`)和大小(`size`)。这种方式设置的字体样式是全局的,适用于整个图表。 例如,下面的代码将字体样式设置为`cmsy10`字体,大小为18: ``` import matplotlib.pyplot as plt import matplotlib font = { 'family': 'cmsy10', 'size': 18 } matplotlib.rc("font", **font) plt.plot([1, 2, 3], [3, 4, 5]) plt.title("Consolas") plt.show() ``` 这样就可以将整个图表中的字体设置为`cmsy10`字体。 方法二:使用自定义字体文件 如果想要使用自己的字体文件来设置中文字体,可以使用`matplotlib.font_manager.FontProperties()`函数来设置字体属性。首先需要导入`font_manager`模块,然后通过`FontProperties`函数设置字体文件的路径和大小,最后在需要显示中文的地方指定相应的字体属性。 例如,下面的代码使用`simhei.ttf`字体文件作为中文字体: ``` import matplotlib.pyplot as plt import matplotlib from matplotlib import font_manager font_path = "C:\\Windows\\Fonts\\simhei.ttf" # 字体文件的路径 my_font = font_manager.FontProperties(fname=font_path, size=20) # 自定义字体 font = { 'family': 'cmsy10', 'size': 18 } matplotlib.rc("font", **font) plt.plot([1, 2, 3], [3, 4, 5]) plt.title("Consolas", fontproperties=my_font) plt.show() ``` 这样就可以将标题中的字体设置为`simhei.ttf`字体。 方法三:直接在代码中指定字体文件路径 如果只是想在特定的地方使用自定义字体,可以直接在代码中指定字体文件的路径。 例如,下面的代码将中文标题的字体设置为`simhei.ttf`字体: ``` import matplotlib.pyplot as plt import matplotlib from matplotlib import font_manager font_path = "C:\\Windows\\Fonts\\simhei.ttf" # 字体文件的路径 my_font = font_manager.FontProperties(fname=font_path, size=20) # 自定义字体 plt.plot([1, 2, 3], [3, 4, 5]) plt.title("中文出现了", fontproperties=my_font) plt.show() ``` 这样就可以将标题中的字体设置为`simhei.ttf`字体。 综上所述,这些方法可以用于在matplotlib中设置中文字体。你可以根据自己的需求选择其中的一种方法来设置中文字体样式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值