I have recently started to work with Networkx in python. I have a code which generates a network and based on some processes the nodes features changes. for example the colours and the statuses. for drawing the graph I use the following function
def draw_graph():
colors = []
for i in range (nCount):
for j in range (i,nCount):
if ifActive(i,j,timeStep) == 1 :
colors.append('r')
else :
colors.append('g')
color_map = []
nColor= nx.get_node_attributes(graph,'color')
for nc in nColor:
color_map.append(nColor[nc])
nx.draw(graph,pos=nx.spring_layout(graph), node_color = color_map, edge_color = colors,with_labels = True )
and in the main function in a for loop, I call the drawing function, but every time the position of nodes changes. Now I want to know, is there any solution to fix the position of nodes in all drawings? If yes, how I can do it?
this is the main function
draw_graph()
for time in range(1,timeStep+1):
if graph.node[i]["status"] == 1:
settime(time,i)
plt.figure(figsize=[10, 10], dpi=50)
draw_graph()
the following figure is an example of output. IF you consider the nodes based on their labels, the position of them is not fix.
question from:
https://stackoverflow.com/questions/65645274/how-to-fix-the-nodes-position-in-networkx 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…