Bar*_*ich 4 python animation 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()
Run Code Online (Sandbox Code Playgroud)
我看到的输出是
11111111111111
222222222222222222222222
3333333333333333333333333
Run Code Online (Sandbox Code Playgroud)
应用程序没有退出,它只是挂在那里,但没有弹出数字.我从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
Run Code Online (Sandbox Code Playgroud)
重现这个问题真的很难,所以我会尝试给出一些一般的建议并尝试猜测问题的实际根源.
首先,如果您还没有使用virtualenvs,那么使用virtualenvs符合您的最佳利益.您将requirements.txt在项目中有一个文件,并将要求从您的家用计算机(工作的计算机)冻结requirements.txt,然后virtualenv在计算机上创建一个新的工作,最后安装要求.这样您就可以确保两台计算机上的所有软件包都具有相同版本.
之后你应该试试看它是否有效.如果没有,请尝试这些并提供更多详细信息:
你能用非常基本的情节matplotlib吗?像这个:
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')
plt.show()
如果从2的例子不工作,尝试更换plt.show()用plt.savefig('numbers.png'),看看图保存成功.如果是这种情况,那么你在matplotlib的交互性方面遇到了一些问题.如果你看不到一个名为的文件numbers.png,那么matplotlib的安装可能有些问题,而不仅仅是动画部分.或者也许安装一些matplotlib包依赖,比如Tkinter.
我会停在这里等待更多细节,而不是进一步假设的情景.
ps如果在窗口中显示生成的绘图/动画有问题,您可能会发现有用的链接:
http://matplotlib.org/faq/usage_faq.html#what-is-a-backend
| 归档时间: |
|
| 查看次数: |
2045 次 |
| 最近记录: |