Я пытаюсь понять, как сообщества из коллекции графиков, которые у меня есть, представляют разные возрастные переходы. со временем. У меня около 14 графов (сети возрастов):
На мой взгляд, это был неориентированный multi_graph, поскольку каждый узел мог иметь несколько ребер. Однако, когда я создаю большую сеть, я просто генерирую огромный несвязанный суперграф. Это нормально, однако мне также нужно создать график, который показывает переход между узлами от одного возраста (графа) к другому. Есть некоторые узлы, которые сохраняются между разными возрастами, но представляют собой некоторые изменения с течением времени .. т.е. соединение между двумя узлами может меняться со временем .. Код выглядит следующим образом:
n12 = nx.relabel_nodes(networkGraph12, lambda nodename: ('age1')+nodename, copy=False)
n13 =nx.relabel_nodes(networkGraph13, lambda nodename: ('age2')+nodename, copy=False)
время 14 возрастов (14 графиков) для поддержания всех узлов в каждом графике, поскольку некоторые узлы идентичны предыдущим возрастам (это ожидается, поскольку это геномные c данные, а узлы представляют гены)
networkList = [n12, n13, n14 et c x 14 графиков] ## сгенерировать список графиков:
allAgesgraph=nx.MultiGraph()
for graph in networkList:
print('adding nodes from' + str(graph))
allAgesgraph.add_nodes_from(graph)
print('adding edges from' +str(graph))
allAgesgraph.add_edges_from(graph.edges())
import community
comms=community.best_partition(allAgesgraph)
#add different colors to nodes
node_col=[]
for node in allAgesgraph.nodes():
if node.startswith('age1'):
node_col.append('green')
elif node.startswith('age2'):
node_col.append('orange')
elif node.startswith('age3'):
etc *14
else node.startswith('lastage')
node_col.append('red)
#plot based on communities of gene-expression
plt.rcParams.update(plt.rcParamsDefault)
plt.rcParams.update({'figure.figsize': (15, 10)})
plt.style.use('dark_background')
#fig,ax=plt.subplots()
#ax.set_facecolor("white")
pos=nx.fruchterman_reingold_layout(allAgesgraph, seed=50)
nx.draw_networkx(
allAgesgraph,
node_color=node_col,
pos=pos,
node_size=2,
edge_color='silver',
alpha=0.4,
font_color='white',
font_size=8,
with_labels=False)
plt.show()
В результате получается несвязный граф с 620 сообществами. Все это неверно, но сообщества и ребра формируются ТОЛЬКО между отдельными графами, фактически создавая один огромный несвязный граф. Я не вижу краевых соединений между переходами узлов от age1-age2.
любые идеи и помощь были бы очень признательны! Я не прилагал итоговый график, но с радостью приложу его, если он проясняет ситуацию
спасибо!