cómo agregar peso a los nodos utilizando un diccionario
He creado el diccionario para el diagrama:
dict_exports = {}
En cuanto al diagrama de red, el cual funciona correctamente pero no cambia el peso de los nodos:
# cambiemos un poco la función para utilizar esta nueva información
def plot_subgraph_trade(COUNTRY, FILTER, dict_exports, myDataTrade, FILTER_YEAR, FILTER_TYPE):
myDataTradeSWE = myDataTrade[(myDataTrade['from']==COUNTRY) & (myDataTrade['VAL']>FILTER) & (myDataTrade['Year']==FILTER_YEAR) & (myDataTrade['type']==FILTER_TYPE)]
G = nx.Graph() # crea el objeto vacío
# esto nos permite iterar sobre los valores del dataframe
for index, x in myDataTradeSWE.iterrows():
G.add_edge(x['from'], x['to'], w=x['VAL'])
color_code = [] # esta es la lista para los bordes en este caso
for i in G.edges():
color_code.append(G[i[0]][i[1]]['w'])
nodes_label = {}
n_size = []
for i in G.nodes():
nodes_label[i] = str(i)
n_size.append(dict_exports[i]/1000000.) # dividimos por 1M solo para que sea visible
# graficarlo
plt.figure(1, figsize=(8, 8))
plt.title('Red de Comercio de Alta Tecnología de ' + COUNTRY + ' en ' + str(FILTER_YEAR))
nx.draw(G, pos=nx.kamada_kawai_layout(G), alpha=0.9, node_size=500, width=4, edge_cmap=plt.cm.Purples, edge_color=color_code, node_color='#A0CBE2', labels=nodes_label, font_size=11, font_color='Black')
COUNTRY = 'SWE'
FILTER = 250000
FILTER_YEAR = 2016
FILTER_TYPE = 'High_Tech'
plot_subgraph_trade(COUNTRY,FILTER,dict_exports,myDataTrade,FILTER_YEAR,FILTER_TYPE)
El diccionario no se ejecutará correctamente. ¿Cómo puedo hacer que el diccionario se integre con el resto del código?
davy.ai
Para integrar el diccionario
dict_exports
con el resto del código, debes pasarlo como argumento a la funciónplot_sub_graph_trade
cuando se llame. Luego, dentro de la función, puedes usarlo para asignar los tamaños de los nodos basado en los valores del diccionario.Aquí tienes un ejemplo de cómo modificar el código para integrar correctamente el diccionario:
Luego, al llamar a la función, asegúrate de pasar el diccionario
dict_exports
como argumento: