macOS中解决matplotlib中文乱码

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

现象

图表上中文变方框,日志中报错如下:

findfont: Generic family 'sans-serif' not found because none of the following families were found: 

解决办法

下载字体

http://xiazaiziti.com/210356.html

查询字体保存路径

查看配置文件路径

import matplotlib    
print(matplotlib.matplotlib_fname())

macOS中解决matplotlib中文乱码
这里我们得到的路径是:

/opt/homebrew/lib/python3.11/site-packages/matplotlib/mpl-data/matplotlibrc

去掉/matplotlibrc ,拼上/fonts/ttf。我们得到最终字体文件保存路径为:

/opt/homebrew/lib/python3.11/site-packages/matplotlib/mpl-data/fonts/ttf

我们把上面下载的文件保存到些目录,并保证文件名为SimHei.ttf
macOS中解决matplotlib中文乱码

修改配置文件matplotlibrc

/opt/homebrew/lib/python3.11/site-packages/matplotlib/mpl-data/matplotlibrc

修改我们上一步得到的配置文件。
修改内容如下:

#去掉前面的#
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

这时重新运行python程序,应该已经解决了中文乱码的问题了。如果还没有解决可能需要清空缓存。

清空缓存

执行下面代码可看到缓存路径:

import matplotlib
print(matplotlib.get_cachedir())

代码执行结果如下:

>>> import matplotlib
>>> print(matplotlib.get_cachedir())
/Users/itkey/.matplotlib

我们把这个目录删除就可以了。

rm -rf /Users/itkey/.matplotlib

至此中文可以正常显示了。

macOS中解决matplotlib中文乱码

参考

https://blog.csdn.net/u012744245/article/details/119735461文章来源地址https://www.toymoban.com/news/detail-478687.html

到了这里,关于macOS中解决matplotlib中文乱码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • VScode注释中文时乱码怎么办?VScode中文注释乱码问题的解决方法

    不管是在哪一种编辑器上,都会有自动默认的一种编码格式,在vscode编辑器中默认的编码格式是utf-8,但是在注释的时候,因为使用的字符会不一样,所以可能存在着默认的配置文件,有可能是其他的编码格式,所以因为编码格式不对应,导致了在注释的时候出现了乱码的情

    2024年02月11日
    浏览(63)
  • 解决SpringBoot响应中文乱码

    创建Servlet类 解决乱码也可以直接resp.setContentType(\\\"text/html;charset=utf-8\\\"),为了演示使用字符集过滤器类这里先不设置编码格式,输出流记得刷新和关闭。 注册Servlet @Configuration声明配置类,@Bean可以将方法返回值添加到Spring容器中,可由容器调用  启动容器对象 SpringApplication.run返回值

    2024年02月14日
    浏览(44)
  • ubuntu解决中文乱码

    1、查看当前系统使用的字符编码 ~$ locale LANG=en_US LANGUAGE=en_US: LC_CTYPE=\\\"en_US\\\" LC_NUMERIC=\\\"en_US\\\" LC_TIME=\\\"en_US\\\" LC_COLLATE=\\\"en_US\\\" LC_MONETARY=\\\"en_US\\\" LC_MESSAGES=\\\"en_US\\\" LC_PAPER=\\\"en_US\\\" LC_NAME=\\\"en_US\\\" LC_ADDRESS=\\\"en_US\\\" LC_TELEPHONE=\\\"en_US\\\" LC_MEASUREMENT=\\\"en_US\\\" LC_IDENTIFICATION=\\\"en_US\\\" LC_ALL= 2、查看当前系统支持的字符集

    2023年04月19日
    浏览(60)
  • GetPrivateProfileString 中文乱码解决

    如: 读取ini文件的属性值(中文)问乱码 我调用下面的接口,从ini配置文件中读取相关的属性值 CString icon_name;          GetPrivateProfileString(szTypeName,szIconName,\\\"\\\",icon_name.GetBuffer(MAX_PATH),MAX_PATH,strIniPath); 配置文件内容如下: [devtree] wendu=111111111 shidu=我爱你侃大山 获取到的shid

    2024年02月09日
    浏览(45)
  • Java如何解决中文乱码

    在Java中,要解决中文乱码问题,可以使用以下几种方法: 如有疑问加入Q群:747125137 1. 使用正确字符编码进行读写操作:确保在读取和写入中文数据使用正确的字符编码。常用的字符编码包括UTF-8、、UTF-16等。可以使用`InputStreamReader`和`OutputStreamWriter`来指定字符编码。   示例

    2024年02月07日
    浏览(50)
  • Qt中文乱码解决办法

    1. QT4版本 中文乱码解决办法是在main.cpp文件加入: Windows 系统里一般的记事本、编辑器、VC++ 开发环境等都是默认用 GBK 汉字编码,而 Linux 和 Qt 都是默认用 UTF-8 国际文字编码,所以文本显示乱码一般都是这个原因。 2. QT5版本 Qt5版本之后,类 QTextCodec 已经取消了 QTextCodec::se

    2024年02月05日
    浏览(82)
  • 解决Linux 中文乱码

    1、可以修改/etc/profile文件 修改/etc/profile文件,在最下面增加 vi etc/profile export LC_ALL=zh_CN.utf8 export LANG=zh_CN.utf8(命令行中使用命令 source 下配置文件,使其生效) 2、修改/etc/locale.gen文件 vi etc/locale.geni #en_sG IS0-8859-1 en_uS.UTF-8 UTF-8 #en_Us ISO-8859-1 locale-gen(生效命令,将注释打开即

    2024年02月16日
    浏览(55)
  • 解决CentOS 7中文乱码问题

    CentOS 7是一种常用的Linux发行版,但在某些情况下,用户可能会遇到中文乱码的问题。这个问题通常出现在终端或文本编辑器中,当显示中文字符时,可能会显示为乱码或方框。在本文中,我将为您提供一些解决CentOS 7下中文乱码问题的方法。 方法一:设置系统的字符集 在C

    2024年02月04日
    浏览(52)
  • Burp Suite 解决中文乱码

    Burp Suite 专业版 v2022.7.1 0x00 写在前面 在使用burpsuite过程中,数据包中的中文信息,显示为乱码 0x01 修改中文字体 修改任意中文字体,例如 黑体 13 0x02 修改字符集 将 Recognize automatically based on message headers 修改为 Use a specific character set 选择UTF-8编码 0x03 正常显示 修改完之后,可

    2024年02月13日
    浏览(35)
  • 简单解决jsp中文乱码问题

    初学jsp制作一个简单的响应页面 具体代码如下: 保存为test.jsp文件,启动tomcat访问,出现下图: 在框内输入:vae 出现下图: 可是\\\"username\\\"看起来实在不舒服,决定将它改成\\\"用户名\\\" 这时问题出现: 本该出现\\\"用户名\\\"的地方出现了一串乱码: 所谓响应中的乱码,就是显示页面

    2024年02月16日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包