gpt4 book ai didi

python - 如何从 Linux 上的 python 脚本使用 matplotlib 1.5.1 进行交互式绘图?

转载 作者:行者123 更新时间:2023-11-28 17:29:33 25 4
gpt4 key购买 nike

根据过去的经验和 http://matplotlib.org/users/shell.html页面,我的理解是我应该使用 TkAgg 后端。我发现 TkAgg 没有更新 matplotlib 1.5.1 或 1.5.0 中的图,而它是在 matplotlib 1.4.3 中。我正在运行这个脚本:

import time
import matplotlib as mpl
print mpl.__version__
mpl.rcParams['backend'] = 'TkAgg'

import matplotlib.pyplot as plt
plt.ion()

plt.figure(3)

for xx in range(3):
plt.ioff()
plt.plot([1,3,34],[3,4+xx,3])
plt.draw()
plt.ion()
print "sleeping 1 sec"
time.sleep(1)

在 1.4.3 下,我每秒都会在绘图中添加一条新线,而在 1.5.1 中,虽然显示了图形,但没有绘制任何绘图。应该是前者吧?或者我对 ioff/draw/ion 的使用有问题,或者是否有其他方法可以与 matplotlib 1.5.1 一起使用?

我的环境是linux red hat 7, python 2.7.11,我是用anaconda conda创建两个不同的环境,也就是

conda create --name matplotlib-1.5.1 matplotlib=1.5.1
conda create --name matplotlib-1.4.3 matplotlib=1.4.3

所以可能是 anaconda 包装的问题?当我列出这两个环境中的包时,除了 matplotlib-1.4.3 依赖于 py2cairo 1.10.0,而 matplotlib 1.5.1 依赖于 py2cairo 1.10.0 和新的称为 cycler 的东西之外,一切都是一样的0.9.0。我在 http://matplotlib.org/devdocs/users/whats_new.html 中没有看到任何内容在此处建议更改的页面。

最佳答案

这不是我在 matplotlib 1.4.3 上绘制的。我建议进行一些更改,包括在之前添加 plt.show() 并使用 plt.pause(1.) 而不是 time.sleep() 可以更好地与新的 matplotlib 配合使用。以下是否按预期工作,

import matplotlib as mpl
print mpl.__version__
mpl.rcParams['backend'] = 'TkAgg'

import matplotlib.pyplot as plt

plt.figure(3)
plt.ion()
plt.show()

for xx in range(3):
plt.plot([1,3,34],[3,4+xx,3])
plt.draw()
print("sleeping 1 sec")
plt.pause(1.)

我知道这更像是一个评论,但似乎更容易发布这样的代码(并且它可能有助于修复)。

关于python - 如何从 Linux 上的 python 脚本使用 matplotlib 1.5.1 进行交互式绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35470324/

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