gpt4 book ai didi

python - Matplotlib 动画不显示

转载 作者:太空狗 更新时间:2023-10-30 02:39:24 25 4
gpt4 key购买 nike

当我在家里的电脑上尝试这个时,它可以工作,但在我工作的电脑上却不行。这是代码

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

最佳答案

这个问题真的很难重现,所以我会尝试给出一些一般性的建议,并尝试猜测问题的真正根源。

首先,使用 virtualenvs 符合您的最佳利益,如果您还没有使用它们。您的项目中将有一个 requirements.txt 文件,并将您家用计算机(工作的那台)的需求卡住到 requirements.txt 中,然后创建一个新的virtualenv 在电脑上工作,最后安装要求。这样您就可以确保在两台计算机上拥有相同版本的所有软件包。

之后你应该尝试看看它是否有效。如果没有,请尝试这些操作并提供更多详细信息:

  1. 当您在工作的计算机上运行它时,您是否看到任何错误或警告?
  2. 您可以使用 matplotlib 绘制非常基本的图吗?就像这个:

    将 matplotlib.pyplot 导入为 plt
    plt.plot([1, 2, 3, 4])
    plt.ylabel('一些数字')
    plt.show()

  3. 如果 2 中的示例不起作用,请尝试将 plt.show() 替换为 plt.savefig('numbers.png') 并查看图形是否成功保存。如果是这种情况,那么您在 matplotlib 的交互性方面遇到了一些问题。如果您看不到名为 numbers.png 的文件,那么 matplotlib 的安装可能有问题,而不仅仅是动画部分。或者可能安装了一些 matplotlib 依赖的包,例如 Tkinter。

我将在这里停下来等待更多详细信息,而不是进一步假设场​​景。

附注如果在窗口中显示生成的绘图/动画有问题,您可能会发现有用的链接:

How can I set the 'backend' in matplotlib in Python?

http://matplotlib.org/faq/usage_faq.html#what-is-a-backend

关于python - Matplotlib 动画不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44636104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com