我正在尝试使用networkx.draw函数的输出结果(LineCollection),以便在需要数组的matplotlib.animation中使用。我不想将我的图形保存为png格式,因为会有很多这样的图形。我也不想显示它,但这并不是必要的。
以下是一个简单的代码示例:
这会输出一个Python集合:
我希望创建一个这样的图纸列表:
然而,我遇到了以下 TypeError 错误:
所以,我认为“艺术家列表”应该是一组图像,这些图像应该是numpy数组、png图像或一些称为PIL的东西(我不熟悉),我不知道如何将集合转换为其中之一而不保存图像为png或任何其他格式。
实际上,这就是我想要做的事情:一个动态动画,当我尝试使用
以下是一个简单的代码示例:
import networkx as nx
graph= nx.complete_graph(5) #a simple graph with five nodes
Drawing=nx.draw(graph)
这会输出一个Python集合:
<matplotlib.collections.LineCollection at 0xd47d9d0>
我希望创建一个这样的图纸列表:
artists=[]
artists.append(Drawing)
并将这些图纸用于动画制作:
import matplotlib
fig= plt.figure() #initial figure, which can be empty
anim=matplotlib.animation.ArtistAnimation(fig, artists,interval=50, repeat_delaty=1000)
然而,我遇到了以下 TypeError 错误:
TypeError: 'LineCollection' object is not iterable
所以,我认为“艺术家列表”应该是一组图像,这些图像应该是numpy数组、png图像或一些称为PIL的东西(我不熟悉),我不知道如何将集合转换为其中之一而不保存图像为png或任何其他格式。
实际上,这就是我想要做的事情:一个动态动画,当我尝试使用
im = plt.imshow(f(x, y))
与我拥有的绘画之一时,会出现此错误:TypeError: Image data can not convert to float
我希望我表达清晰了,这是我第一次使用动画和绘图工具。有没有人能提供一个解决方案?
pause()
代替计时器,并使用了pylab.draw()
代替plt.show
,我不知道为什么,但它起作用了!所以你可以忽略之前的问题。但是我仍然无法解决视频问题。 - potato