请求解析Matplotlib中plt.gca().get_children()最后4个元素的含义
先看你给出的返回结果里,最后4个元素是:
<matplotlib.text.Text at 0x7fa1848c2a58>, <matplotlib.text.Text at 0x7fa1848c2c50>, <matplotlib.text.Text at 0x7fa1848c24e0>, <matplotlib.patches.Rectangle at 0x7fa1848c2518>
下面逐个拆解它们的作用:
第一个Text对象(<matplotlib.text.Text at 0x7fa1848c2a58>):你已经找对了,这就是你通过
plt.title()或ax.set_title()设置的图表主标题,也就是你说的图表标签,默认居中显示在Axes顶部的中间位置。第二个Text对象(<matplotlib.text.Text at 0x7fa1848c2c50>):这个是Axes的左侧标题占位符(对应Axes对象的
_left_title属性),默认位置在Axes坐标系的(0,1)点(左下角为(0,0),右上角为(1,1)),对齐方式为左对齐。平时你没设置左标题时它是空文本,不会显示,但始终作为Axes的子元素存在;当你用ax.set_title(..., loc='left')指定标题居左时,这个Text对象就会被填充内容并显示出来。第三个Text对象(<matplotlib.text.Text at 0x7fa1848c24e0>):和上面的左标题占位符对应,这是Axes的右侧标题占位符(对应Axes对象的
_right_title属性),默认位置是(1,1),对齐方式为右对齐。同样默认是空文本,只有当你设置标题居右时,它才会显示具体内容。最后一个Rectangle对象(<matplotlib.patches.Rectangle at 0x7fa1848c2518>):你的猜测完全正确!这就是Axes的背景矩形,也就是承载所有绘图内容的“绘图表面”。它负责渲染Axes的背景色(默认白色),你可以通过
ax.set_facecolor()修改它的颜色,所有绘图元素都是在它之上绘制的。
内容的提问来源于stack exchange,提问作者Rodrigo Cañas

