この回答の私のコードスニペットで推奨するライブラリは、ではありません。 pythonライブラリですが、このライブラリを使用しているコードをPythonに挿入することができます。モジュールを処理するためにこの外国語のコードは、両方の端にある現存のPythonコード、すなわち入力と出力の両方に接続します。もちろん、わかりませんが、それは実際には "pythonライブラリ"基準。したがって、Webアプリケーションを作成する場合、このコードはクライアント側になります。言い換えれば、このライブラリはPythonではありませんが、Pythonで動作します。
その入力は、(ほぼ)生Pythonのdicts JSON配列またはオブジェクトを返す、より具体的には、json.load(a_python_dict)、ジャバスクリプトライブラリこれは当然認識できるフォーマット。そして、いくつかの 言語固有の形式で
出力形式はHTMLまたはSVGのどちらかではなく、オブジェクト
あなたはd3.jsを使用することができます。それは木をレンダリングするための、具体的classを持っています
var tree = d3.layout.tree().size([h, w]);
例フォルダの樹木の例をいくつ(作業コード)はダウンロードフォームでは/あなたが複製することができD3ソースでもありますリンクiは上記のとおりです。
d3はjavascriptライブラリであるため、そのネイティブデータフォーマットはJSONです。
基本的な構造は、ネストされた辞書である、二つの値を持つ単一のノードを表す各辞書は、(アレイに格納されている)ノードの名前とその子は、名それぞれと子供にキーイング:
{"name": "a_root_node", "children": ["B", "C"]}
そしてもちろん、それはPythonの辞書やJSONとの間で変換するのは簡単です:
>>> d = {"name": 'A', "children": ['B', 'C']}
>>> import json as JSON
>>> dj = JSON.dumps(d)
>>> dj
'{"name": "A", "children": ["B", "C"]}'
ここでiは、上記のようにJSONに変換し、次にツリーは以下の図に示すようにD3でレンダリング大きなツリー(ダース程度ノード)のパイソン辞書表現は次のとおり
tree = {'name': 'root', 'children': [{'name': 'node 2', 'children':
[{'name': 'node 4', 'children': [{'name': 'node 10', 'size': 7500},
{'name': 'node 11', 'size': 12000}]}, {'name': 'node 5', 'children':
[{'name': 'node 12', 'children': [{'name': 'node 16', 'size': 10000},
{'name': 'node 17', 'size': 12000}]}, {'name': 'node 13', 'size': 5000}]}]},
{'name': 'node 3', 'children': [{'name': 'node 6', 'children':
[{'name': 'node 14', 'size': 8000}, {'name': 'node 15', 'size': 9000}]},
{'name': 'node 7', 'children': [{'name': 'node 8', 'size': 10000},
{'name': 'node 9', 'size': 12000}]}]}]}
が ノート:d3はブラウザにレンダリングし、上記の画像はブラウザウィンドウのスクリーンショットです。
「ツリーグラフファイル」とは何ですか?入力/出力の例と、出力の使い方に関するコメントが大いに役立ちます。 – neirbowj
@neirbowj良いコメント、ありがとうございます。 – jdotjdot