当我在 IDLE 或 VS Code 中显示多个(例如 10 个左右)matplotlib 图时,它们通常显示为从左上角到右下角的级联图堆栈。 在此堆栈中,第一个图位于底部,最后一个图位于顶部(即完全可见)。 要查看堆栈中除最后一个之外的任何绘图,我将单击其标题栏,该标题栏是可见的,因为堆栈中的绘图从左上到右下是级联或交错的。
这种默认行为的缺点是我(可能还有其他 Python 用户)经常想先查看第一个图,最后查看最后一个图。 因此,从最后到第一个顺序显示绘图的可见性会更方便,并且无需更改图形编号(如果有 10 个图形,则为图 1 到图 10)。
作为一种黑客,我们可能会尝试通过反转图形绘制的顺序以及反转图形编号来在代码中实现此目的。 但这个解决方案可能很麻烦——为了可读性,我们可能希望在代码中构造绘图变量的位置生成绘图,而不是将所有绘图推迟到最后。
这个问题有更好的解决办法吗?
文档指出 pyplot.figure 接受数字参数作为
图形的唯一标识符。 如果具有该标识符的图形已存在,则该图形将被激活并返回。
在所有图形都创建完成后,我们可以使用它来颠倒顺序。
import matplotlib.pyplot as plt
for i in range(1, 11):
plt.figure(i)
plt.plot([i, 2*i, 3*i])
for i in range(10, 0, -1):
plt.figure(i)
plt.show()