第一种直接在程序里输入
-- plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
-- plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
最近找到一种一劳永逸的方法,经测试有效,下面介绍具体方法:
进入C:\Anaconda64\Lib\site-packages\matplotlib\mpl-data该文件夹下就能看到matplotlibrc配置文件。(这里的路径是你的安装目录,视个人情况而定)
1)打开该配置文件,找到下面这两行:
font.serif : DejaVu Serif, Bitstream Vera Serif, New Century Schoolbook
font.sans-serif : DejaVu Sans, Bitstream Vera Sans, Lucida Grande, Verdana,
然后将开头的两个注释符删掉。
axes.unicode_minus : True # use unicode for the minus symbol
该处是为了能够使坐标轴上的负号正常显示,同样将开头的注释符#去掉,然后将True改为False:
axes.unicode_minus : False # use unicode for the minus symbol
2)找中文字体放到matplotlib字体库中。
在Windows文件夹下:C:\Windows\Fonts\复制该字体(例如此处我复制的为:楷体 常规(文件名为simkai.ttf。注意要看下字体的属性,须复制后缀名为ttf的)),然后粘贴到C:\Anaconda64\Lib\site-packages\matplotlib\mpl-data\fonts\ttf(这里依然是安装目录)文件夹。
注明:这一步的作用其实就是将matplotlib中一个默认的字体替换为我们复制过来的中文字体,将这个中文字体命名改为matplotlib中有的字体名。
可以看到我们的字体文件的注册名字为KaiTi。
4)将我们的字体文件的注册名字加到配置文件代码中sans-serif后面:
font.sans-serif : KaiTi, DejaVu Sans, Bitstream Vera Sans...................................
import matplotlib
import matplotlib.pyplot as plt
plt.figure()
plt.title("标题")
plt.show()