在使用Python+matplotlib绘图时,默认不能显示中文字符,会显示为方块,例如下面的代码:
上面代码绘制的图像如下,所有中文字符都显示为方块:
如果要正常显示中文,可以使用matplotlib的rcParams设置font.family的值来统一设置中文字体,例如
修改后代码生成的图像如下:
通过rcParams还可以修改和设置更多其他属性,可以通过下面的代码进行查看:
通过rcParams设置中文字体时会把图形中所有中文字符设置为相同的字体,如果想为坐标轴标签、刻度、图形标题设置不同的字体,可以在调用函数xlabel()/ylabel()、xticks()/yticks()、title()或轴域相关方式时使用参数fontproperties来指定中文字体。如果想设置图例中的中文字体,可以使用matplotlib.font_manager.FontProperties根据本地字体文件创建字体后通过legend()函数的prop进行传递,例如:
生成的图像如下:
其中,本地的可用字体文件可以查看C:\windows\fonts文件夹,fontproperties属性可用的值可以通过下面的代码进行查看:
下面是部分输出结果: