【发布时间】:2017-12-21 18:38:19
【问题描述】:
我在 MacOS 上使用带有 Sulime Text 的 Matplotlib。
我使用Python 3.5 和Matplotlib 2.0。
当我处理一个图形时,我通常有一个绘制数据的脚本,并将图形保存在一个带有plt.savefig() 的 .pdf 文件中。然后我使用Skim(pdf 查看器)以便在每次修改和运行脚本时刷新文件。这使我可以将我的工作布局设置为干净:有一个脚本窗口,一个窗口用于自动刷新的图形。
我想保持相同的布局,但使用 Matplotlib 图形(因为它们是交互式的)。我正在寻找一种使用plt.show() 的方法,但总是在同一个图中,这是我第一次运行脚本时创建的。
例如:
1。第一次运行
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.figure()
noise = np.random.rand(1, 100)
ax(noise)
plt.show()
2。以下运行
import matplotlib.pyplot as plt
import numpy as np
# This is the super command I am looking for
fig = plt.get_previous_run_figure()
ax = fig.axes
noise = np.random.rand(1, 100)
ax.plot(noise)
plt.draw()
当然,在这种情况下,我必须与主脚本分开执行首次运行脚本。有谁知道有没有可能?
【问题讨论】:
-
我理解正确吗 fig = plt.figure(0); fig.clf() 对你不起作用,因为你想重用另一个 python 实例的窗口?
-
您正在寻找的“超级命令”在 python 中称为酸洗。请参阅我建议的重复问题作为示例
-
@tom 酸洗会在运行之间保持窗口打开吗?我认为这就是 OP 要求的......
-
@kazemakase 啊,不,可能不是。我可能误解了这个问题。如果你关闭你的 python 会话,我怀疑你是否可以保持一个窗口打开,但是酸洗至少应该允许你重新打开前一个会话中的一个图。
标签: python matplotlib