将 Pajek 数据集读入 Networkx

Cha*_*lie 2 networkx

我正在寻找将 Pajek 数据集转换为 networkx Graph()。该数据集来自哥斯达黎加家庭关系。我正在使用非常方便的networkx.read_pajek(pathname)功能,但遇到了一些麻烦。更改到正确的目录后,我在终端窗口 (iPython) 上执行以下命令,导入networkx as nxmatplotlib.pyplot as plt

>> G = nx.read_pajek('SanJuanSur.paj')
>> nx.draw(G)
>> fig = plt.figure(figsize = (15, 10))
>> nx.draw(G)
>> plt.show()
Run Code Online (Sandbox Code Playgroud)

命令输出

显然,发生了一些不寻常的事情,希望经验丰富的人能够帮助我。看起来该.paj文件有许多不同的部分塞入我下载的一个文件中。不太确定如何分解它,因为没有评论,而且看起来 Pajek 一般都是用 GUI 来操作的。

>> G.node['f49']
{'id': '49', 'shape': '0.5000', 'x': 0.5533, 'y': 0.3766}
Run Code Online (Sandbox Code Playgroud)

希望使用节点的状态(范围从 0-14 的属性)。谢谢你!

Ari*_*ric 5

networkx Pajek 文件阅读器无法处理包含额外“分区”数据的 .paj 格式文件。不幸的是,它似乎有效。但显然你会得到额外的节点和边。

如果删除文件 SanJuanSur2.net 中从 *Edges 开始到末尾的所有内容,您可以使用 networkx.read_pajek() 读取它。