7

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>

....

4

4 に答える 4

2

@fccoelho に続いて、Anders Eriksen (anderser)がPython を使用してGraphML XML をd3 JSON 形式に変換する例をまとめました( GitHub gist ) 。

convert.py <- GraphML から d3_JSON へ

Python スクリプトは、Python-louvainおよびNetworkx.github.ioライブラリを利用します。

于 2014-09-16T12:54:42.187 に答える
1

Python と networkX を使用すると、graphml を読むことができます: http://networkx.lanl.gov/reference/generated/networkx.readwrite.graphml.read_graphml.html

そして、さまざまなフレーバーで JSON として保存します: http://networkx.lanl.gov/reference/readwrite.json_graph.html

于 2012-12-01T20:02:35.010 に答える
-1

OK、ついにグラフをd3.js準拠の.jsonに変換する方法を見つけました http://coulmont.com/blog/2012/11/03/reseau-d3js/ これはRとRJSONIOライブラリ(注釈フランス語です)

library(RJSONIO) 
#creation de la partie qui renseigne les "nodes"
temp<-cbind(V(g2)$name,V(g2)$group)
colnames(temp)<-c("name","group")
js1<-toJSON(temp)
#creation de la partie qui renseigne les "liens"
write.graph(g2,"Desktop/edgelist.csv",format="edgelist")
edges<-read.csv("Desktop/edgelist.csv",sep=" ",header=F)
colnames(edges)<-c("source","target")
edges<-as.matrix(edges)
js2<-toJSON(edges)
#concatenation des deux parties
reseau<-paste('{"nodes":',js1,',"links":',js2,'}',sep="")
write(reseau,file="Desktop/reseau.json")
于 2012-11-03T17:18:09.123 に答える