Windows 7的使用。如果我打开一个普通的IPython在命令行输入端子()我可以输入:Matplotlib冻结当Spyder的
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4, 5])
plt.show(block=False)
input("Hello ")
但是,如果我做同样的事情在Spyder的,只要我询问用户输入,Matplotlib窗口冻结,所以我无法与之交互。显示提示时,我需要与剧情互动。
在这两个Spyder的和普通的控制台,matplotlib.get_backend()返回“Qt4Agg”
编辑:为了澄清,我有matplotlib设立它在自己的窗口显示出来,而不是嵌入式的PNG。 (我不得不设置Backend:Automatic来获得这种行为)
另外,在Spyder中,plot会在plt.plot()后立即打开。在常规控制台中,它只会在plt.show()后打开。另外,如果在Spyder中输入input()后按Ctrl-C,整个控制台会意外挂起。比。在IPython中,它只会引发KeyboardInterrupt并将控制权返回给控制台。
编辑:更完整的示例:在IPython控制台中工作,而不是在Spyder(冻结)中。根据用户输入,想要移动情节。
import matplotlib.pyplot as pl
def anomaly_selection(indexes, fig, ax):
selected = []
for i in range(0, len(indexes)):
index = indexes[i]
ax.set_xlim(index-100, index+100)
ax.autoscale_view()
fig.canvas.draw()
print("[%d/%d] Index %d " % (i, len(indexes), index), end="")
while True:
response = input("Particle? ")
if response == "y":
selected.append(index)
break
elif response == "x":
return selected
elif response == "n":
break
fig, ax = pl.subplots(2, sharex=True)
ax[0].plot([1, 2, 3, 4, 5]) # just pretend data
pl.show(block=False)
sel = anomaly_selection([100, 1000, 53000, 4300], fig, ax[0])
大量编辑的:我相信这是与输入)阻塞的Qt的问题(。我的解决方法是,如果这个问题没有得到支持,那就是构建一个嵌入了Matplotlib图的Qt窗口,然后通过窗口获取键盘输入。
此外,有没有人真的使用Spyder?我应该使用别的东西来替代MATLAB吗?我主要希望使用Python作为一种更为理智的语言来构建更大的数值应用程序,但要留在更具实验性的MATLAB风格环境中。 –
(Spyder dev这里*)Spyder很多用户,不知道多少,但是我们每年有大约200,000次下载。 –
请发布您正在使用的代码的简单版本,以便我们了解您要实现的目标。您发布的伪代码(特别是GOTO 2步骤)是不够的。谢谢:-) –