轴bbox在轴“内部”之外不包含任何内容(例如,不包含刻度标签,标题等)
解决此问题的一种快速方法是在绘图时仅抓住图形的整个区域。(例如
background = canvas.copy_from_bbox(fig.bbox))
如果您有多个子图并且只想为其中一个设置动画,则可能会导致问题。在这种情况下,您可以按照进行操作
background =canvas.copy_from_bbox(ax.bbox.expanded(1.1, 1.2))。不过,您必须估算所需的比率。
如果您需要刻度标签的确切范围,那会有些棘手。最简单的方法是遍历ticklabel对象并使用进行并集
ax.bbox。您可以将其设置为单线:
ax.bbox.union([label.get_window_extent()for label in ax.get_xticklabels()])。
无论如何,我认为这三个选项之一应该可以满足您的需求。



