在iPython中,matplotlib.pyplot.show()后保持Python Shell可用

2 投票
1 回答
2492 浏览
提问于 2025-04-18 04:50

下面这个Python脚本会画出一个函数x^2的图,并显示出来:

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(0,10,11)

y=x**2

plt.plot(x,y)
plt.show()

一切都很好,但我注意到在运行这个脚本后,Python的命令行并没有保持“可用”。具体来说(见下图),光标在最后一个命令提示符(“>>>”)下面闪烁,但我输入的内容并没有出现在命令提示符旁边。只有在我关闭图形窗口后,我才能再次在命令提示符中输入内容。

有没有人知道怎么才能同时保持图形和命令提示符可用?(我在Linux上运行iPython;在Windows上使用Enthought Python Distribution运行类似的脚本时没有遇到这样的情况)。

运行上面脚本后的Python命令行

附言:我试着在脚本中添加plt.ion(),虽然这样可以让命令行保持可用,但图形却是空白的(见下图)。在命令行中输入“%run plot_test.py”时出现“SyntaxError: invalid syntax”,并且“%”被高亮显示。

运行上面脚本后使用plt.ion()的Python命令行

1 个回答

7

试着使用 ion 作为

import numpy as np
import matplotlib.pyplot as plt

x=np.linspace(0,10,11)

y=x**2

plt.ion() # here
plt.plot(x,y) # now it shows plot window
plt.draw()

plt.plot(x,y*10) # will be updated
plt.draw()
plt.plot(x,y*100) # will be updated
plt.draw()

撰写回答