在网上找了一大堆方法,花了很久,发现不是要安装各种字体就是要改配置,而且字体真的不好找也不好安装
就例如下面这两种办法,mac下根本不管用,别人管不管用我不知道,反正我试过了无效
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
# 或者 plt.rc('font', family='SimHei', size=13)
经过我折腾好久发现python还是自带可以显示中文的字体的,输入如下代码可以查看系统可用字体
from matplotlib.font_manager import FontManager
fm = FontManager()
mat_fonts = set(f.name for f in fm.ttflist)
print mat_fonts
上面的代码大家有兴趣可以自己去尝试着玩一下,下面才是重点
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['Arial Unicode MS']
然后就可以愉快的使用中文label和legend了
————————————————
版权声明:本文为CSDN博主「瓜而不皮」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_32590631/article/details/80509741
如何永久性解决中文字体乱码问题:
1、找到matplotlib的字体配置文件 import matplotlib print(matplotlib.matplotlib_fname()) # 得到matplotlib使用字体所在文件夹: # /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc
2、下载中文字体SimHei.ttf,将字体复制到配置文件所在文件夹下的fonts/ttf/下,然后双击安装
3、修改配置文件matplotlibrc,修改三处配置: # font.family前面注释去掉 font.family : sans-serif # font.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 # axes.unicode_minus前面注释去掉,并修改成False axes.unicode_minus : False ## use Unicode for the minus symbol
4、删除缓存目录 这是在mac上的操作,删除/Users/你的用户名/.matplotlib文件夹 501 cd /Users/dingding/ 503 rm -rf .matplotlib/
5、重启pycharm