文章目录
1.向matplotlib添加字体2.画图时自定义字体格式2.0 修改全局字体2.1 用`fontproperties`参数的一类方法2.2 用`prop`参数的一类方法2.3 用`fontdict`参数的一类方法2.4 汇总1.向matplotlib添加字体
比如添加Times New Roman字体,参照此篇博客
2.画图时自定义字体格式
from matplotlib import pyplot as pltfig, ax = plt.subplots()
2.0 修改全局字体
对于Axes
对象设置刻度字体很麻烦(先设定位置再设定文字)。有一条捷径就是先设置全局字体为预期的刻度字体,然后再设置别的地方的字体,如较为容易设置的标题字体、坐标轴标签字体、图例字体等。
plt.rc('font',family='Times New Roman', size=15)
2.1 用fontproperties
参数的一类方法
这一类方法包括plt.xlabel, plt.ylabel, ax.set_xlabel, ax.set_ylabel, plt.xticks, plt.yticks, plt.title, ax.set_title
首先实例化一个FontProperties
类,然后在调用函数时传给fontproperties
from matplotlib import font_manager as fmfont_properties = fm.FontProperties(**kwargs)plt.xlabel('xlabel', fontproperties=font_properties)plt.yticklabels(fontproperties=font_properties)
其中可以指定的关键字参数有如下这些
2.2 用prop
参数的一类方法
这类方法主要是绘制图例函数plt.legend, ax.legend
首先定义一个fontdict
,然后在调用函数时把fontdict
传给prop
参数
其中fontdict
的可选键名与FontProperties
的可选参数名一样
fontdict = {'family':'Times New Roman', 'size':19}plt.legend(loc='best',prop=fontdict)
2.3 用fontdict
参数的一类方法
其中包括plt.xlabel
,plt.ylabel
,plt.text
ax.text
ax.set_xticklabels
ax.set_yticklabels
等。
(没想到吧,plt
设定ticklabel
和Axes
对象设定ticklabels
方法竟然不一样!!)
也是定义一个fontdict
,只不过这次传给的是fontdict
参数。
font_dict = {'math_fontfamily':'cm', 'size':19}plt.text(r'$S = \pi r^2$',fontdict=font_dict)xticks = ax.get_xticks()ax.set_xticks(xticks)ax.set_xticklabels(xticks, fontdict=font_dict)