当前有效matplotlib版本为:3.4.1。
概述
如果不手动创建子图,matplotlib会默认自动创建一个子图,前面介绍的title()、legend()、xlabel()、ylabel()等函数的调用对象其实都是子图对象,也只对子图生效。如果想在整个图形中添加标题、图例、轴标签该如何操作呢?
matplotlib.pyplot模块提供了suptitle()、figlegend()、figtext()等函数用于添加图形级的标题、图例、文本。
figure对象增加了supxlabel()方法和supylabel()方法用于添加图形的轴标签。(3.4.1新特性)
figlegend()函数
figlegend()函数用于为图形添加图例。其用法与legend()函数类似。
函数的签名为matplotlib.pyplot.figlegend(*args, **kwargs)
figtext()函数
figtext()函数用于为图形添加文本。其用法与text()函数类似,主要区别在于位置参数x、y的参照为整个图形。
函数的签名为matplotlib.pyplot.figtext(x, y, s, fontdict=None, **kwargs)
Figure.supxlabel()、Figure.supylabel()
在matplotlib 3.4.1增加了为图形添加轴标签的功能。其使用方法类似于pyplot.suptitle、pyplot.xlabel()、pyplot.ylabel()
函数的签名为:
matplotlib.figure.FigureBase.supxlabel( t, **kwargs)
matplotlib.figure.FigureBase.supylabel( t, **kwargs)
案例:演示图形级的标题、图例、文本、轴标签
import matplotlib.pyplot as plt
# 添加3行3列9个子图
fig, axes = plt.subplots(3, 3)
# 为第一个子图添加一条直线,并绘制子图图例
axes[0, 0].plot([1, 1], label='1')
axes[0, 0].legend()
axes[0, 0].set_title('1')
# 为第二个子图添加一条直线
axes[0, 1].plot([1, 1], label='1')
# 绘制整个图形的图例
plt.figlegend()
# 在整个图形范围内添加文本
plt.figtext(0.3, 0.3, 'test')
# 添加整个图形的标题
plt.suptitle('test')
# 添加整个图形的x轴标签
fig.supxlabel("x")
# 添加整个图形的y轴标签
fig.supylabel("y")
plt.show()

本文介绍了如何使用matplotlib在图形级别上添加标题、图例、文本和轴标签等内容,包括figlegend()、figtext()及Figure.supxlabel()和Figure.supylabel()等函数的使用方法。
7120





