gokhan arik
Creé mi gráfico, todo se ve muy bien hasta ahora, pero quiero actualizar el color de mis nodos después de la creación.
Mi objetivo es visualizar DFS, primero mostraré el gráfico inicial y luego colorearé los nodos paso a paso a medida que DFS resuelve el problema.
Si alguien está interesado, el código de muestra está disponible en Github
Abdalá Sobehy
Todo lo que necesita es especificar un mapa de colores que asigne un color a cada nodo y enviarlo a la función nx.draw. Para aclarar, para un nodo de 20 quiero colorear los primeros 10 en azul y el resto en verde. El código será el siguiente:
G = nx.erdos_renyi_graph(20, 0.1)
color_map = []
for node in G:
if node < 10:
color_map.append('blue')
else:
color_map.append('green')
nx.draw(G, node_color=color_map, with_labels=True)
plt.show()
-
¿Cómo manejamos los duplicados? Si hay duplicados, se eliminan automáticamente del gráfico, pero se siguen agregando valores a color_map.
– Harsha Reddy
13 de septiembre de 2019 a las 13:25
-
Publiqué una respuesta (stackoverflow.com/a/59473049/1904943) sobre la creación de un dígrafo NetworkX a partir de un marco de datos de Pandas, con los nodos coloreados según la columna del marco de datos.
– Victoria Estuardo
24 de diciembre de 2019 a las 20:21
-
¿Te refieres a los ID de los nodos? No importa, seguiría funcionando
– Abdalá Sobehy
6 oct 2020 a las 23:49
-
Estoy tratando de utilizar la misma metodología aquí, pero dado que algunos de mis bordes son bidireccionales, recibo este mensaje de error: ValueError: el argumento ‘c’ tiene 105 elementos, lo que es inconsistente con ‘x’ e ‘y’ con tamaño 66. ¿Hay alguna solución en networkx?
– Ceniza
3 de febrero a las 0:46
Referirse a node_color
parámetro:
nx.draw_networkx_nodes(G, pos, node_size=200, node_color="#00b4d9")
ha sido respondido antes, pero también puedes hacer esto:
# define color map. user_node = red, book_nodes = green
color_map = ['red' if node == user_id else 'green' for node in G]
graph = nx.draw_networkx(G,pos, node_color=color_map) # node lables