use*_*720 7 xml json graphml d3.js force-layout
如何在 d3.js 中使用 graphml 文件?[我想画一个力有向图]
将文件转换为 .json 是否更简单?如何 ?我一直找不到转换器(我找到了一个 python 转换器,但我不是 python 用户)
可以直接使用graphml文件吗?可能是 d3.xml 吗?
注意:graphml 看起来像这样
<graph id="G" edgedefault="directed">
<node id="n0">
<data key="v_name">JohnMaynardKe...</data>
<data key="v_label">John Maynard Ke...</data>
<data key="v_size">4</data>
<data key="v_label.cex">0.3</data>
<data key="v_frame.color">#ffffff00</data>
<data key="v_color">#54FF00CC</data>
</node>
<node id="n1">
<data key="v_name">JosephA.Schum...</data>
<data key="v_label">Joseph A. Schum...</data>
<data key="v_size">4</data>
<data key="v_label.cex">0.3</data>
<data key="v_frame.color">#ffffff00</data>
<data key="v_color">#54FF00CC</data>
</node>
<edge source="n0" target="n1">
<data key="e_nombre">2</data>
<data key="e_width">2</data>
<data key="e_arrow.size">0</data>
<data key="e_color">#00000021</data>
</edge>
<edge source="n0" target="n7">
<data key="e_nombre">2</data>
<data key="e_width">2</data>
<data key="e_arrow.size">0</data>
<data key="e_color">#00000021</data>
</edge>
Run Code Online (Sandbox Code Playgroud)
....
小智 7
我建议您将 graphml 文件转换为 json 文件。我遇到了同样的问题,这里是我如何使用 python 和 networkx 库在 json 中转换 graphml 文件:
import networkx as nx
import json
from networkx.readwrite import json_graph
import re
G=nx.read_graphml('YourFile.graphml', unicode)
data = json_graph.node_link_data(G)
for node in data['nodes']:
str=node['id']
node['id']=[int(s) for s in str.split("n") if s.isdigit()][0]
with open('YourFile.json', 'w') as f:
json.dump(data, f, indent=4)
Run Code Online (Sandbox Code Playgroud)
代码中的 for 循环将您的节点 ID 转换为数字。这非常重要,因为 json 最终文件中的源和目标已经是数字(不是字符)。
| 归档时间: |
|
| 查看次数: |
5757 次 |
| 最近记录: |