matplotlib添加字体、字体格式自定义

文章目录

  • 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 plt

fig, 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 fm

font_properties = fm.FontProperties(**kwargs)
plt.xlabel('xlabel', fontproperties=font_properties)
plt.yticklabels(fontproperties=font_properties)

其中可以指定的关键字参数有如下这些matplotlib添加字体、字体格式自定义_第1张图片

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设定ticklabelAxes对象设定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)

2.4 汇总

方法 位置参数名 传入的参数类型
plt.xlabel, plt.ylabel, ax.set_xlabel, ax.set_ylabel, plt.xticks, plt.yticks,plt.title,ax.set_title fontproperties FontProperties实例
plt.legend, ax.legend prop fontdict字典
plt.xlabel, plt.ylabel,plt.text, ax.text, ax.set_xticklabels, ax.set_yticklabels fontdict fontdict字典

你可能感兴趣的:(Python,python,matplotlib,数据可视化)