Я работаю над проблемой анализа социальных сетей, где у меня есть ориентированный граф. Я хочу, чтобы моим краям присваивался цвет в зависимости от степени входа и выхода. Как бы вы предложили это сделать? Кроме того, какие крутые и проницательные изменения и изменения могут быть внесены в сюжет помимо цвета краев в зависимости от степени? Если вы знаете, как изменить размер узла на основе определенного веса или количества соседей, которые будут оценены.
Вот весь мой сценарий:
import matplotlib.pyplot as plt
import networkx as nx
import numpy as np
import pandas as pd
импорт ребра и узла pandas dataframe
edges = pd.read_csv("./edges.csv", sep = ";")
nodes = pd.read_csv("./nodes_coordinates.csv", sep = ";")
# assigning nodes to own dataframe with a unique identifier
node = nodes.set_index("node").to_dict("index").items()
настройка ориентированного графа
# adding nodes and edges to a graph object
D = nx.from_pandas_edgelist(edges, source = "from",
target = "to",
create_using = nx.DiGraph)
D.add_nodes_from(node)
nx.is_directed(D)
вывод: true
настройка координат
coordinates_dict = {}
for node in nodes.node:
coordinates_dict[node] = list(nodes.loc[nodes.node == node ,['lon','lat']].values[0])
построение графиков с координатами
plt.subplots(figsize =(20,10))
nx.draw_networkx_nodes(D, pos= coordinates_dict, node_size = 0, with_labels = True)
nx.draw_networkx_edges(D, pos = coordinates_dict, edge_color= "gray", alpha = .1)
nx.draw_networkx_labels(D, pos = coordinates_dict, label_pos = 10.3, font_size=16)
plt.show()
Пока что нет цвета, основанного на степени зелени, как я хочу, но я начал делать что-то подобное (хотя я знаю, что это пока не работает):
# Compute the in-degree centrality for nodes.
inn = D.in_edges()
out = D.out_edges()
color1 = [G[u][v]["red"] for u,v in inn]
Я думаю, мне нужно каким-то образом создать столбец, основываясь на том, имеют ли они степень входа / выхода, и повторить это через мой фрейм данных, и каким-то образом получить к нему доступ для графика, но не уверен, как это вообще сделать .
Кроме того, имейте в виду, что я тоже хочу что-то сделать с размером.
Большое вам спасибо за внимание к этому!
edge csv файл
файл узла