matplotlib 用plt.ioff抑制的数字稍后显示

5jdjgkvh  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(93)

我有一个加载数据和绘图的模块。我有一堆测试用例,每当我导入我的模块时都会运行。他们中的一些人生成数字只是为了让我可以检查他们的属性。我使用plt.ioff作为上下文管理器来抑制这些数据。但是,在交互式会话(Spyder)中,当我导入模块并绘制一些图时,会出现被抑制的测试用例图。
一个最小的例子来证明这一点:

from matplotlib import pyplot as plt

with plt.ioff():
    plt.plot([0, 1, 2], [0, 1, 4])
    
plt.figure()
plt.plot([0, 1, 2], [1, 2, 3])
plt.show()

将显示两个数字,每个plot命令对应一个数字。我在Spyder和Jupyter中都得到了相同的结果。我用的是matplotlib v3.7.1。

rbpvctlc

rbpvctlc1#

这是对plt.ioff的错误使用。消除图形的正确方法似乎是plt.close

plt.plot([0, 1, 2], [0, 1, 4])
plt.close()

plt.figure()
plt.plot([0, 1, 2], [1, 2, 3])
plt.show()

相关问题