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步驟)是不夠的。謝謝:-) –