在iPython中,matplotlib.pyplot.show()后保持Python Shell可用
下面这个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运行类似的脚本时没有遇到这样的情况)。
附言:我试着在脚本中添加plt.ion(),虽然这样可以让命令行保持可用,但图形却是空白的(见下图)。在命令行中输入“%run plot_test.py”时出现“SyntaxError: invalid syntax”,并且“%”被高亮显示。
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()