Как исправить порядок узлов networkx на одном уровне? - PullRequest
0 голосов
/ 12 октября 2018

Я хочу построить двухслойную графику с пакетом networkx на рисунке matplotlib.

Первый уровень - это узел A01 ~ A08, а второй - это узел B01 ~ B08.Узлы между уровнем A и уровнем B являются случайными парными, но порядок узлов в обоих слоях фиксирован.

С помощью приведенного ниже кода узлы группируются в два уровня, но порядок узлов во втором уровнеперемешиваются.

Как исправить порядок узлов во всех слоях.

import random
import networkx as nx
from networkx.drawing.nx_agraph import graphviz_layout
import matplotlib.pyplot as plt

nodes_A = [f"A{i:02}" for i in range(1, 9)]
nodes_B = [f"B{i:02}" for i in range(1, 9)]
G = nx.DiGraph()
G.add_nodes_from(nodes_A + nodes_B)
G.add_edges_from(list(zip(nodes_A, sorted(nodes_B, key=lambda k: random.random()))))

pos = graphviz_layout(G, prog="dot")
color_node = ["red" if n.startswith("A") else "green" for n in G.nodes()]

fig, ax = plt.subplots(figsize=(4, 3), dpi=300)
nx.draw(G, pos, with_labels=True, node_color=color_node, node_size=500)
plt.show()

fig

Этот является наиболее актуальным вопросом Iнайден в стекеНо я не могу найти способ добавить цвета и любой другой стиль для to_agraph класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...