英文:
Figures suppressed with plt.ioff show up later
问题
以下是翻译好的部分:
我有一个加载数据并制作图表的模块。每当我导入我的模块时,会运行一堆测试用例。其中一些生成图形,以便我可以检查它们的属性。我使用 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
版本3.7.1。
英文:
I have a module that loads data and makes plots. I have a bunch of test cases that run whenever I import my module. Some of them generate figures just so that I can inspect their properties. I suppress these figures using plt.ioff
as a context manager. But when, in an interactive session (Spyder), I import the module and make some plots, the suppressed test-case plots appear.
A minimal example that demonstrates this:
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()
Two figures appear, one for each plot
command. I get the same result in both Spyder and Jupyter. I'm using matplotlib
v3.7.1.
答案1
得分: 0
这是对 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()
英文:
This is a mistaken use of plt.ioff
. The correct way to suppress a figure appears to be plt.close
:
plt.plot([0, 1, 2], [0, 1, 4])
plt.close()
plt.figure()
plt.plot([0, 1, 2], [1, 2, 3])
plt.show()
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论