【发布时间】:2012-11-06 09:35:56
【问题描述】:
我想制作一个随时间增长的图表。
这是我目前所拥有的:
fig = plt.figure()
ims = []
graph = nx.Graph()
for i in range(50):
// Code to modify Graph
nx.draw(graph, pos=nx.get_node_attributes(graph,'Position'))
im = plt.draw()
self.ims.append([im])
ani = animation.ArtistAnimation(fig, ims, interval=50, blit=True,repeat_delay=1000)
ani.save('dynamic_images.mp4')
plt.show()
但是,我收到以下错误消息:
File "main.py", line 204, in <module>
repeat_delay=1000)
File "/usr/lib/pymodules/python2.7/matplotlib/animation.py", line 356, in __init__
TimedAnimation.__init__(self, fig, *args, **kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/animation.py", line 304, in __init__
Animation.__init__(self, fig, event_source=event_source, *args, **kwargs)
File "/usr/lib/pymodules/python2.7/matplotlib/animation.py", line 53, in __init__
self._init_draw()
File "/usr/lib/pymodules/python2.7/matplotlib/animation.py", line 363, in _init_draw
artist.set_visible(False)
AttributeError: 'NoneType' object has no attribute 'set_visible'
nicomoto@nicomoto-VirtualBox:~/Desktop/CS8903-SpecialProblem/Code/
我想要的是一个动画,你可以在其中看到图形的增长。我可以在每个阶段保存图表,也许可以在 matplotlib 之外创建动画,但是有什么办法让它像这样工作吗?
【问题讨论】:
-
你的后端是什么?我遇到了一些后端的动画问题。你能运行matplotlib的basic_example.py吗?
-
是的,这对我来说非常适合。至于后端,我只是在ubuntu,python 2.7,numpy,scipy,networkx和matplotlib上......都是最近几天安装的,所以它们是最新版本......我基本上是个学生,正在尝试一些实验,对这些图表进行动画处理真的很有帮助,所以我可以看到它们是如何成长的!
-
我对networkx不熟悉。也许问题是
ArtistAnimation需要一个 matplotlib 艺术家而不是一个 nx 对象? -
更新了我的答案,希望对你有帮助。
标签: python animation matplotlib networkx