Este es el codigo, disculpen si no uso syntax highlighting
#!/usr/bun/env python
import random
import networkx as nx
import matplotlib.pyplot as plt
# Lista de colores
colorList = [ 'blue','yellow', 'white', 'green', 'orange' ]
xnodes = list()
#Lista en donde se guardan los nodos dependiendo del color
blue = list()
yellow = list()
white = list()
green = list()
orange = list()
#Se crea la grafica con 7 nodos y 7 aristas
G = nx.gnm_random_graph( 7, 7 )
pos = nx.random_layout( G )
#Guarda los nodos en una lista
nodes = G.nodes()
for x in nodes:
#Da colores random dependiendo de la lista de colores
colors = random.choice( colorList )
#Guarda los vecinos en una lista
xnodes.extend( G.neighbors( x ) )
# En esta parte del codigo quise realizar un algoritmo que cada vez que se seleccionara una color random haga un recorrido entre sus vecinos para verificar si son del mismo color, trate de ponerles un atributo a cada nodo agregado pero no pude.
if colors == 'blue':
blue.append( x )
elif colors == 'yellow':
yellow.append( x )
elif colors == 'white':
white.append( x )
elif colors == 'green':
green.append( x )
else:
orange.append( x )
print G.neighbors( x )
#Vacia la lista de nodos vecinos
xnodes = list()
print 'colors'
print blue
print yellow
print white
print green
print orange
#Dibuja los nodos
nx.draw_networkx( G, pos, nodelist = nodes )
nx.draw_networkx_nodes( G, pos, nodelist = blue, node_color = 'blue' )
nx.draw_networkx_nodes( G, pos, nodelist = yellow, node_color = 'yellow' )
nx.draw_networkx_nodes( G, pos, nodelist = white, node_color = 'white' )
nx.draw_networkx_nodes( G, pos, nodelist = green, node_color = 'green' )
nx.draw_networkx_nodes( G, pos, nodelist = orange, node_color = 'orange' )
#Dibuja las aristas
nx.draw_networkx_edges( G, pos )
plt.axis( 'off' )
plt.show()
Una imagen del programa en ejecucion
Esto es todo por ahora, pero quisiera modificarlo en un futuro para que funcione.
No comments:
Post a Comment