У меня есть k-раздельный граф, в котором узлы очень близки друг к другу. Если я добавлю метку True, она будет выглядеть очень загроможденной.
1) Как я могу распределить график с достаточными расстояниями между узлами 2) Если метки узлов большие, как увеличить размер узлов, чтобы он соответствовал меткам внутри.
Ниже приведен фрагмент кода
G = nx.Graph()
G.add_nodes_from(emc["entity"], bipartite=0)
G.add_nodes_from(set(EMM_unique["keys"]).symmetric_difference(set(emc["entity"])), bipartite=1)
G.add_nodes_from(EMM["id"], bipartite=2)
G.add_edges_from(list(emc.itertuples(index=False)))
G.add_edges_from(list(EMM.itertuples(index=False)))
nodes = G.nodes()
# for each of the parts create a set
nodes_0 = set([n for n in nodes if G.nodes[n]['bipartite']==0])
nodes_1 = set([n for n in nodes if G.nodes[n]['bipartite']==1])
nodes_2 = set([n for n in nodes if G.nodes[n]['bipartite']==2])
# set the location of the nodes for each set
pos = dict()
pos.update( (n, (i, -1)) for i, n in enumerate(nodes_0) ) # put nodes from X at x=1
pos.update( (n, (i, -2)) for i, n in enumerate(nodes_1) ) # put nodes from Y at x=2
pos.update( (n, (i, -3)) for i, n in enumerate(nodes_2) ) # put nodes from X at x=1
color_map = []
for node in G:
if node in emc["entity"].values:
color_map.append("red")
elif node in EMM["id"].values:
color_map.append("green")
else:
color_map.append("cyan")
nx.draw(G, pos, node_color=color_map, node_size= [len(n)*20 for n in G.nodes()], font_color= "blue",font_size=7, alpha=0.7, node_shape="s", with_labels=True, with_arrows=True)
Я уже пробовал вариант изменения размера_узла по длине узла строки, но, как видно из изображения, он слишком загроможден из-за меньшего расстояния между узлами. Может ли кто-нибудь также помочь мне создать поле метки вне узлов? Эта опция также исправит проблему. Спасибо
PS Я знаю, что такие варианты доступны в двухстороннем формате, но я не использую двудольный.