gpt4 book ai didi

python - 如何根据中心性绘制图形?

转载 作者:太空宇宙 更新时间:2023-11-04 00:14:20 25 4
gpt4 key购买 nike

我已经分析了我的图表并获得了特征向量中心性。(如下所示)

cit = nx.read_edgelist('Cit-HepTh.txt', create_using=nx.DiGraph(), nodetype=int)
(...compute centrality to a dict...)

现在我想根据这个字典绘制一个图表,其中不同的节点根据它们的中心性具有不同的大小。
我看过一个绘制不同颜色的例子(也许我认为有类似的方法来绘制不同的尺寸

node_colours = []
for node in nodes:
if node < 5:
node_colours.append('blue')
else:
node_colours.append('green')
#draw graph, substitute the single colour with ur list of colours
nx.draw_spring(G, k=1, node_color = node_colours,
node_size = 200, font_size = 6, with_labels = True)

我正在尝试绘制一个包含 27000+ 个节点的大图,但是为 networkX 绘制这样的图似乎很慢。所以我只想画出前 100 名(最高特征向量中心性)。你有什么例子或建议吗?

最佳答案

这些线上的东西(虽然有 27k+ 个节点,但又快又脏):

通过以下方式获得每个节点的中心性后:

 eigen_centrality = nx.eigenvector_centrality(G)
all_nodes = [(node,eigen_centrality(node)) for node in eigen_centrality]

按中心性查找前 100 个节点:

top_100_nodes = [n for (n,c) in all_nodes if c in np.argsort(c)[-100:]]

然后,创建前 100 个节点的子图:

G1 = G.subgraph(top_100_nodes)  

然后绘制图形:

top_100_centrality = nx.eigenvector_centrality(G1)
nx.draw_spring(G1, k =1, node_color = node_colours, \
node_size = [top_100_centrality(n) for n in G1.nodes()],
font_size = 6, with_labels = True)

关于python - 如何根据中心性绘制图形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51461382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com