Mac系统下matplotlib中SimHei中文字体缺失报错的解决办法

这篇具有很好参考价值的文章主要介绍了Mac系统下matplotlib中SimHei中文字体缺失报错的解决办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei'] 
plt.rcParams['axes.unicode_minus']=False

使用matplotlib画图时,因为缺少字体,、图像上label上的中文显示时空白小方块。因为matplotlib默认没有中文。

解决方法:

Step 1. 在终端进入python3环境,查看matplotlib字体路径:

import matplotlib    
print(matplotlib.matplotlib_fname())
Mac系统下matplotlib中SimHei中文字体缺失报错的解决办法

找到自己的matplotlib字体文件路径:

/Users/zhangzhang/miniforge3/envs/py38_pytorch/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf

(这里的路径与上面找出来的路径不一致,需要手动删除matplotlibrc,并添加fonts/ttf)

Step 2. 下载SimHei.ttf字体:

国内SimHei:https://www.duote.com/soft/915316.html

下载后,解压,并命名为SimHei.ttf

Step 3. 将下载好的SimHei.ttf字体移动到第一步查询到的字体目录./fonts/ttf/下:

mv 下载路径 目标路径

mv /Users/zhangzhang/Downloads/SimHei.ttf /Users/zhangzhang/miniforge3/envs/py38_pytorch/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf

(也可以手动找出路径,手动移)

Step 4. 打开终端,进入python环境,清理matplotlib缓冲目录:

import matplotlib
print(matplotlib.get_cachedir())

获取缓冲目录地址:/Users/zhangzhang/.matplotlib

终端输入exit()退出python环境,再删除上面找到的缓冲文件:

rm -rf /Users/dan/.matplotlib

Step 5. 修改原始文件:

打开第一步找到的路径:/Users/zhangzhang/miniforge3/envs/py38_pytorch/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc进行修改:

Mac系统下matplotlib中SimHei中文字体缺失报错的解决办法

通过/定位(例如/font.sans-serif来定位),来修改下面三个地方:

#去掉前面的#
font.family:  sans-serif

#去掉前面的#,手动加SimHei
font.sans-serif: SimHei, DejaVu Sans, Bitstream Vera Sans, Computer Modern Sans Serif, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif

#去掉前面的#,把True改为False
axes.unicode_minus: False  # use Unicode for the minus symbol rather than hyphen.  See# https://en.wikipedia.org/wiki/Plus_and_minus_signs#Character_codes

Step 6. 重启,测试。 (此时默认显示中文字体)

import matplotlib.pyplot as plt
plt.title('显示中文')
x = np.arange(7)
y = x
plt.plot(x, y, 'r-')
plt.xlabel('x轴')
plt.ylabel('y轴')
plt.show()
Mac系统下matplotlib中SimHei中文字体缺失报错的解决办法

不需要plt.rcParams['font.sans-serif'] = ['SimHei']就可以自动显示中文,至此中文显示的问题已经解决。文章来源地址https://www.toymoban.com/news/detail-412162.html

到了这里,关于Mac系统下matplotlib中SimHei中文字体缺失报错的解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mac环境Obsidian的ExcaliDraw添加中文字体

    顾名思义,这是画图用的,但是系统不支持中文字体,所以需要下载中文字体自己放进去。

    2024年02月21日
    浏览(62)
  • 记一次linux系统使用dockerfile编写容器支持中文字体环境

    今天研发开发一个网上受理需要容器支持中文环境否则服务启动起来会出现中文乱码。 解决思路: 1、先把jar把在本地环境直接加参数运行如果运行起来无乱码说明本地的字体文件就可以直接COPY到容器中使用,如果还是乱码就说明本地的字体文件不支持中文环境,就需要下载

    2024年02月09日
    浏览(58)
  • Rocky(Centos)安装中文字体(防止中文乱码)

    运行下列命令 若出现,下面截图,则需要安装字体管理软件  安装字体库,运行: 当看到下图的提示信息时说明已安装成功: 1)windows系统中就可以找到,打开c盘下的Windows/Fonts目录: 如上图,我们只需要将我们需要的字体拷贝出来并上传至linux服务器即可(例如:宋体和黑

    2024年02月09日
    浏览(61)
  • unity添加中文字体

    1.随便打开一个unity工程 2.将字体文件拖至project目录下 3.点击Window-TextMeshPro-Font Asset Creator 4.将中文文件(*.txt)拖至Project路径下 5.修改设置如下 6.点击Generate Font Atlas开始生成

    2024年03月22日
    浏览(68)
  • CentOS中安装中文字体

    在CentOS上安装宋体字体的过程可能因为不同版本而有所差异。以下是一种常见的安装宋体字体的方法: 1.下载SimSun.ttf 宋体字体文件并把对应字体的的ttf文件拷到/usr/share/fonts/的目录下如:     /usr/share/fonts/chinese/SimSun.ttf 2.安装宋体字体: cd /usr/share/fonts/chinese/     //进入字

    2024年02月07日
    浏览(60)
  • Unity TextMeshPro使用中文字体

      TextMeshPro是Unity新一代字体,是 Unity 的最终文本解决方案。它是 Unity UI Text 和旧版 Text Mesh 的完美替代方案。功能强大、易于使用、性能高效。目前TextMeshPro对中文的支持也还可以,不过默认不能用,需要自己成生成。    本文就介绍TextMeshPro中文字体文件的生成方法,并

    2024年02月08日
    浏览(62)
  • docker Dockerfile增加中文字体支持

    很多时候在部署应用时候,因docker没有中文字体支持,导致中文乱码问题,需要在构建Docker镜像时候增加中文字体支持 1、下载中文字体ttl文件点击下载 2、将中文字体文件上传到同需要构建的文件放在同一目录 3、编写Dockerfie配置安装中文字体

    2024年02月04日
    浏览(52)
  • 树莓派系统汉化教程(汉语+中文字体库+中文输入法pinyin(拼音))

    1.在putty登录树莓派,在命令行输入sudo nano raspi-config,然后回车如下图: 2.选择 5 Localisation Options Configure language and regional settings,并回车 结果如下图: 因为Timezone(时区)/keyboard(键盘)/WLAN country (wifi国家),用官方的烧录器烧录时已经设置好了,不会设置的可以参考上一

    2024年02月07日
    浏览(61)
  • Unity [TextMeshPRO]动态字体显示中文

    我们知道Unity的Text组件在新版本中已经标记为legacy,TextMeshPRO因为有着更加出色的效果被Unity官方奉为主流。 言归正传,如果我们想要用TextMeshPRO]显示中文应该这么处理呢? 首先,我们肯定要导入一份中文字体 因为静态字体的文章较多,这里不再赘述 然后我们在字体上右键

    2024年02月12日
    浏览(65)
  • Unity TextMesh Pro创建中文字体资源

    最近将Unity升级到了2021.3.22,发现Unity UI已经完全使用TextMesh Pro替代了原来的Text组件,测试了下,发现自带的两种字体资源都不支持中文,中文字自动变成了小方块,如下图: 查了下资料,需要自己创建中文字体资源,网上有人说在Project窗口右键—Create—TextMeshPro—Font Asse

    2024年02月05日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包