使用ds.js畫出樹狀圖,樣式可自定義。以下是效果圖
介紹下過程:
- 使用d3.js
- 初始化d3和畫布大小,tree = d3.layout.cluster().size([h, w])
- 導入數據,使用d3默認處理數據: root = tree.nodes(data)
- 處理數據(包括坐標的處理)
- 展示數據
html代碼如下,需要引用d3.js即可
<html> <head> <title></title> </head> <body> <js href="/Public/plugins/d3js/d3.min.js" /> <style type="text/css"> #body{ height: 500px; width: 500px; } /*d3js*/ .node circle { cursor: pointer; fill: #fff; stroke: steelblue; stroke-width: 1.5px; } .node text { font-size: 11px; cursor: pointer; } path.link { fill: none; stroke: #ccc; stroke-width: 1.5px; } </style> <div id="body" class="body"> <div id="footer"> <button onclick="updateinfo()">Click me</button> </div> </div> <script type="text/javascript"> updateinfo(); function updateinfo(){ var json ={"r":{"name":"flare","children":[{"name":"animate","children":[{"name":"Easing"},{"name":"FunctionSequence"},{"name":"ISchedulable"},{"name":"Parallel"},{"name":"Parallel2"},{"name":"Parallel4"},{"name":"Parallel6"},{"name":"Pause"}]}]},"l":{"name":"flare","children":[{"name":"query","children":[{"name":"AggregateExpression","pos":"l"},{"name":"And","pos":"l"},{"name":"Arithmetic","pos":"l"},{"name":"fasdfasdf","pos":"l"