当前有效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()