Exibindo gráfico de redex com etiquetas
Estou tentando criar um gráfico rotulado usando o networkx, mas estou tendo problemas para fazer com que os nós e os rótulos funcionem corretamente. Em resumo, os rótulos não se alinham nos nós certos e há alguns nós que não têm arestas quando exibidos.
Primeiro, criei um gráfico, adicionei nós e arestas e depois adicionei etiquetas.
Os dados do gráfico vêm de um objeto DataFrame do pandas com duas colunas, nomes de funcionários e gerentes:
emp_name mgr_name
0 Marianne Becker None
1 Evan Abbott Marianne Becker
2 Jay Page Marianne Becker
3 Seth Reese Marianne Becker
4 Maxine Collier Marianne Becker
...
Cada nó é um nome e as bordas são o relacionamento mgr_name para emp_name.
Meu código gráfico:
import networkx as nx
G=nx.DiGraph()
#set layout
pos=nx.spring_layout(G)
#add nodes
G.add_nodes_from(df.emp_name)
G.nodes()
G.add_node('None')
#create tuples for edges
subset = df[['mgr_name','emp_name']]
tuples = [tuple(x) for x in subset.values]
#add edges
G.add_edges_from(tuples)
G.number_of_edges()
#draw graph
import matplotlib.pyplot as plt
nx.draw(G, labels = True)
plt.show()
Idealmente, eu teria uma estrutura em forma de árvore com nomes de funcionários como rótulos para cada um dos nós.
A imagem de saída é