控制matplotlib画图中图片字体的参数是在rcParmas中设置,默认的参数设置中使用的字体为sans-serif类,其中包括了常见的Arial和Helvetica等,但这些字体是不支持显示中文的。通过更改该参数中的字体设置,将其转为一种支持中文的字体,即可达到显示中文的目的。具体如下:
import matplotlib
matplotlib.rcParams
#rcParams是一个字典,其中有各种参数,涉及字体的有以下几种
输出的内容如下
{
‘font.family’:[‘sans-serif’],
‘font.fantasy’:[……],
‘font.monospace’:[……],
‘font.sans-serif’:[……],
‘font.serif’:[……],
……
}
在rcParams中,font.family定义了画图使用哪种字体,目前是sans-serif。供选择的字体类就是下面的四个:fantasy(活泼字体?我自己瞎翻译的),monospace(等宽字体),sans-serif(无衬线字体),serif(衬线字体)。目前网络上常用的、有效的解决办法是:
matplotlib.rcParams['sans-serif'] = ['SimHei']
其原理就是,将sans-serif的字体改为SimHei,而rcParams调用的就是sans-serif字体类,即其中的SimHei字体。目前试验下来,除了’SimHei’和’KaiTi’之外,改为其他的仍无法显示。
其实,也可以直接用下面的方法设置,效果是一样的。
rcParams['font.family'] = 'SimHei'