步骤如下:
- 1、 找到配置文件matplotlibrc
 不管是啥系统,都可以通过以下方式查找matplotlibrc所在的文件夹(可以在终端或者编译器中运行以下代码)
import matplotlib
# 查找字体路径
print(matplotlib.matplotlib_fname())
结果:
D:\Coding\Anaconda\lib\site-packages\matplotlib\mpl-data\matplotlibrc
使用文本编辑器打开matplotlibrc文件。
- 2、修改配置文件
 使用Ctrl+F查找font.family所在位置,我的结果如下:
  
 在下面的font.sans-serif后面加入想要的中文字体类型,比如我加的就是楷体KaiTi,我试了一下,如果在后面加入多个中文字体类型,会默认选择第一个的,所以根据自己的需求加就行。那么哪些字体是可以加进去的呢?
- 3、查找可使用的字体类型并根据需求添加字体文件
 找到并打开.matplotlib文件夹,我的路径为C:\Users\14417\.matplotlib,14417是我电脑的用户名。在.matplotlib中有一个名称为fontlist-v330.json的文件,里面有电脑中字体文件(后缀为.ttf)及其相对应的文字代码。使用文本编辑器打开,以KaiTi为例:
  
 KaiTi对应的字体文件在"C:\\Windows\\Fonts\\simkai.ttf",其文字代码为KaiTi,KaiTi即我们需要添加到font.sans-serif后面的。如果想用仿宋,先查找仿宋对应的字体文件及文字代码如下:
  
 这里字体文件的路径与前面的不一样,是因为我修改了路径,这里就引出另一个问题:如果fontlist-v330.json里面没有我们想要的文件咋办?不难发现以上截图中的字典里面除了fname和name以外不同字体对应的字典中的其他键值对是一样的,因此只需要知道我们想要的字体的fname和name便可使用。fname为字体文件的路径,如果电脑有相关的字体文件则直接加上来即可,如前面的"C:\\Windows\\Fonts\\gadugib.ttf"。如果电脑没有的话,则先从网上下载相应的.ttf文件,然后放入matplotlibrc对应的字体文件夹中,我的为D:\Coding\Anaconda\Lib\site-packages\matplotlib\mpl-data\fonts\ttf,matplotlibrc在D:\Coding\Anaconda\Lib\site-packages\matplotlib\mpl-data\里面,最后将fname设置为fonts\\ttf\\XX.ttf即可,name自己设置就行。
- 4、修改配置文件解决正负号显示错误问题
 在配置文件matplotlibrc中找到unicode_minus并将其设置为False即可。
  
记得一定一定要重启编译器,因为会有缓存,此时更改
matplotlibrc的话直接运行代码还是没用的,重启之后就可以了。对于Linux系统啥的可以用print(matplotlib.get_cachedir())找到缓存文件所在的位置并删除即可。我的电脑上运行以上代码找到的缓存文件夹里并没有相关的缓存文件,重启编译器也可实现上述效果。



















