现象
图表上中文变方框,日志中报错如下:
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())
这里我们得到的路径是:
/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
修改配置文件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
至此中文可以正常显示了。
文章来源:https://www.toymoban.com/news/detail-478687.html
参考
https://blog.csdn.net/u012744245/article/details/119735461文章来源地址https://www.toymoban.com/news/detail-478687.html
到了这里,关于macOS中解决matplotlib中文乱码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!