我尝试使用下面的代码从 Dataframe 生成networkx图:
import pandas as pd
import numpy as np
import networkx as nx
data = [[0,0,0,1], [1,0,0,1], [1,0,0,1], [0,0,0,0]]
df = pd.DataFrame(data, columns=['S1', 'S2', 'S3', 'S4'])
df.index = ['S1', 'S2', 'S3', 'S4']
G = nx.DiGraph(df.values, with_labels=True)
nx.draw(G)
但是,图表输出时不显示节点的名称,如下所示
我尝试使用networkx relabel_nodes
标记图中的节点,但没有成功
G = nx.relabel_nodes(G, dict(enumerate(df.columns)))
nx.draw(G)
有没有一种方法可以将networkx图中的节点标记为S1, S2, S3, S4
?
1条答案
按热度按时间biswetbf1#
重命名应该是以旧节点标识符为键,以新节点标识符为值的Map(基本上是字典):