這與matplotlib有關,而不是Spyder。將圖形的位置明確地顯示爲真正只有解決方法的那些事情之一...請參閱here問題的答案。這是一個古老的問題,但我不確定自那以後有什麼變化(任何matplotlib開發者,請隨時糾正我!)。
第二個顯示器不應該有任何區別,這聽起來像問題只是該圖被替換爲一個新的。
幸運的是,您可以通過專門使用對象接口,更新Axes對象而不創建新圖形,從而更新您已經移動到您想要的位置的數字。一個例子如下:
import matplotlib.pyplot as plt
import numpy as np
# Create the figure and axes, keeping the object references
fig = plt.figure()
ax = fig.add_subplot(111)
p, = ax.plot(np.linspace(0,1))
# First display
plt.show()
# Some time to let you look at the result and move/resize the figure
plt.pause(3)
# Replace the contents of the Axes without making a new window
ax.cla()
p, = ax.plot(2*np.linspace(0,1)**2)
# Since the figure is shown already, use draw() to update the display
plt.draw()
plt.pause(3)
# Or you can get really fancy and simply replace the data in the plot
p.set_data(np.linspace(-1,1), 10*np.linspace(-1,1)**3)
ax.set_xlim(-1,1)
ax.set_ylim(-1,1)
plt.draw()
(*這裏的Spyder開發*)讓我看看,如果我正確地理解您的問題:你重新運行腳本,產生matplotlib陰謀,和情節在您的第二臺顯示器不更新?另一個問題:你的操作系統和Spyder,matplotlib和Python的版本是什麼?謝謝你:-) –
是的,如果我重新運行腳本(在第二臺顯示器上顯示第一次運行的情節),打開一個新圖並放置在第一臺顯示器上。 我工作在Ubuntu 14.04(64位)與Spyder 2.3.2和matplotlib 1.3.1 .. 感謝您的幫助! –
這似乎是matplotlib的問題,而不是Spyder。也許更新到matplotlib 1.4.2將幫助你。對不起,沒有更多的幫助。 –