當我在家中的電腦上試用此功能時,它可以正常工作,但不能在我的電腦上工作。下面的代碼Matplotlib動畫未顯示
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import sys
import multiprocessing
def update_line(num, gen, line):
data = gen.vals_queue.get()
data = np.array(data)
line.set_data(data[..., :num])
return line,
class Generator(multiprocessing.Process):
def __init__(self):
self.vals = [[], []]
super(Generator, self).__init__()
self.vals_queue = multiprocessing.Queue()
def run(self):
while True:
self.vals[0].append(np.random.rand())
self.vals[1].append(np.random.rand())
self.vals_queue.put(self.vals)
if __name__ == '__main__':
gen = Generator()
gen.start()
fig1 = plt.figure()
l, = plt.plot([], [], 'r-')
plt.xlim(0, 1)
plt.ylim(0, 1)
plt.xlabel('x')
plt.title('test')
print 11111111111111
sys.stdout.flush()
line_ani = animation.FuncAnimation(fig1, update_line, frames=None, fargs=(gen, l),
interval=50, blit=True, repeat=False)
print 222222222222222222222222
sys.stdout.flush()
plt.show()
print 3333333333333333333333333
sys.stdout.flush()
而且我看到的輸出是
11111111111111
222222222222222222222222
3333333333333333333333333
,應用程序不會退出,只是掛在那裏,但沒有數字彈出。我從Linux終端運行它。我matplotlib的版本是matplotlib-2.0.0-1.x86_64
另外,我在工作中得到這個(問題之一)
CentOS Linux release 7.2.1511 (Core)
echo $SHELL
/bin/bash
echo $BASH_VERSION
4.2.46(1)-release
Python 2.7.12
我認爲我們將需要更多的信息,即:OS兩臺計算機的,在boths Python版本,並可能使用的shell運行Python文件(例如,IPython都不會公開另一個窗口顯示數字) –
請參閱上面的編輯。我沒有從iPython運行它,只是從Linux終端運行。 –