微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从显示 python 中的相关/交互数据的表中绘制交互图,如模式球?

如何解决如何从显示 python 中的相关/交互数据的表中绘制交互图,如模式球?

我有一个包含数据的表格,我想从中以信息丰富的方式显示交互。 我统计了不同人之间的交互,并将其输入到表格中,如下所示:

Table showing interactions between people

理想情况下,我想以有趣的方式可视化这些数据(如果您知道更多,请告诉我!)。我找到了这些东西,我想根据这些数据自己创建一个

Simpsons interaction graph

我在网上找到了一些教程,但是,我似乎无法让它工作,因为我无法在 NX 图中以正确的方式输入我的数据:当遍历表时,我最终将错误的一端附加到彼此或跳过数据。

数据:

A B C D E F
A x 2 1 3 0 0
B 2 x 0 4 5 1
C 1 0 x 3 0 2
D 3 4 3 x 1 1
E 0 5 0 1 x 1
F 0 1 2 1 1 x

尽力而为代码

import matplotlib.pyplot as plt
import networkx as nx
import matplotlib

namelist = []
for i in range(0,len(systeem)):
    namelist.append(systeem.iloc[i,0])

G=nx.Graph()
G.add_nodes_from(namelist)

weightlist=[]
for i in range(0,len(namelist)):
    for j in range(1,len(namelist)):
        if int(systeem.iloc[i,j]) > 0:
            W=int(systeem.iloc[i,j])
            weightlist.append(W)
            G.add_edge(namelist[i-1],namelist[j],weight= W)
        else:
            continue

plt.figure(figsize=(40,40))

pos = nx.circular_layout(G) 
cmap = matplotlib.cm.get_cmap('plasma_r')
nx.draw_networkx(G,pos,width=1,node_color="blue",edge_cmap=cmap,with_labels=False)

labels_pos = {name:[pos_list[0],pos_list[1]-0.04] for name,pos_list in pos.items()}

nx.draw_networkx_labels(G,labels_pos,font_size=40,font_family="sans-serif",font_color="#000000",font_weight="bold")

ax = plt.gca()
ax.margins(0.25)
plt.axis("equal")
plt.tight_layout()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。