我不知道如何使用NetworkX为循环的每次迭代保存一个新的图形png。我借用了这个问题的代码:in NetworkX cannot save a graph as jpg or png file并对其进行了一点操作。代码如下:
import networkx as nx
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(12,12))
ax = plt.subplot(111)
ax.set_title('Graph - Shapes', fontsize=10)
G = nx.DiGraph()
G.add_node('shape1', level=1)
G.add_node('shape2', level=2)
G.add_node('shape3', level=2)
G.add_node('shape4', level=3)
G.add_edge('shape1', 'shape2')
G.add_edge('shape1', 'shape3')
G.add_edge('shape3', 'shape4')
pos = nx.spring_layout(G)
n = 0
colorses = ['yellow', 'red', 'blue', 'green']
while n < len(colorses):
nx.draw(G, pos, node_size=1500, node_color=colorses[n], font_size=8, font_weight='bold')
plt.tight_layout()
# plt.show()
plt.savefig("Graph.png", format="PNG")
n += 1
理想情况下,我想有四个图像,每一个有不同的颜色节点。如果你需要更多信息,请告诉我。谢谢!在
第一个建议是,通过索引值访问颜色不是“Pythonic”。相反,请使用
for
循环:您的代码将在循环的每次迭代中重写
^{pr2}$Graph.png
。要为每次迭代保存一个新文件,只需在每次迭代中重命名输出文件。一种方法是使用format()和enumerate()函数:只需更改输出文件的名称
不过,你应该用更具描述性的名字。也许你可以用时间来代替n
^{pr2}$这不是很好,因为字符串将有空格,但您可以事先调整它
顺便说一句,我只是用了这个方法,我又加了一步,让我的标签来自我的文件名。我希望它能帮助别人。在
和平
相关问题 更多 >
编程相关推荐