<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                > [Wiki](Home) ? [[API--中文手冊]] ? [[布局]] ? **樹布局** * guluT20141102 * 如發現翻譯不當或有其他問題可以通過以下方式聯系譯者: * 郵箱:zhang_tianxu@sina.com * QQ群:[D3數據可視化](http://jq.qq.com/?_wv=1027&k=ZGcqYF)205076374,[大數據可視化](http://jq.qq.com/?_wv=1027&k=S8wGMe)436442115 樹布局能夠用萊因戈爾德-蒂爾福德算法產生一個整潔的樹狀結點-鏈接圖。例如,樹布局可以用來組織軟件的包中類的層級結構。 像其他大多數布局一樣,d3.layout.tree返回的是一個對象也是一個函數。也就是說:你可以像調用其他函數一樣調用布局,并且這個布局函數有可以改變它的行為的附加方法。像D3里的其他類一樣,布局遵循函數的鏈式模式,其中setter返回布局本身,允許在簡單的語句中調用多個setter方法。 # d3.layout.tree() 用默認設置創建一個樹布局:默認的排序是null;默認的孩子訪問器假定每個輸入數據是一個帶有孩子數組的對象;默認的操作函數為兄弟節點指定一個結點的寬度,沒有兄弟姐妹的節點指定兩個結點的寬度;默認的尺寸是1X1。 # tree(root) # tree.nodes(root) 運行樹布局,返回一個與特殊的根結點root 有關系的結點數組。樹布局是D3的層次布局家族中的一部分。這些布局遵循相似的基本結構:布局的輸入參數是層次結構的根節點,輸出返回值是一個經過計算的全部結點的位置的數組。 在每個結點中包含下面幾個屬性: ?雙親-雙親結點,根節點無雙親。 ?孩子-孩子結點的數組,葉子無孩子結點。 ?深度-結點的深度,根節點深度為0。 ?x-計算結點位置的x坐標。 ?y-計算結點位置的y坐標。 盡管布局在x和y方向上有大小,這表示了一個任意的坐標系統;例如,你可以將x看做半徑,將y看做角度去產生一個徑向而不是笛卡爾布局。 # tree.links(nodes) 給定一個特殊的結點數組nodes,比如通過nodes返回的,返回一個表示從雙親結點到每個孩子結點的對象數組。葉子結點將不再有任何鏈接,每個鏈接是一個有兩個屬性的對象: ?源結點-雙親結點(如上文描述) ?目標結點-孩子結點 這種方法是有用的,用于檢索一組適合于顯示的鏈接描述,經常與對角線形狀發生器一起使用。例如: svg.selectAll("path") .data(tree.links(nodes)) .enter().append("path") .attr("d", d3.svg.diagonal()); # tree.children([children]) 如果指定了子節點children ,設置指定的子節點訪問器函數。如果未指定子節點,返回當前子節點訪問器函數,默認情況下假定輸入數據是一個帶有子節點數組的對象: function children(d) { return d.children; } 通常,使用d3.json很方便加載節點的層次結構,并用嵌套JSON對象代表輸入層次結構。例如: { "name": "flare", "children": [ { "name": "analytics", "children": [ { "name": "cluster", "children": [ {"name": "AgglomerativeCluster", "size": 3938}, {"name": "CommunityStructure", "size": 3812}, {"name": "MergeEdge", "size": 743} ] }, { "name": "graph", "children": [ {"name": "BetweennessCentrality", "size": 3534}, {"name": "LinkDistance", "size": 5731} ] } ] } ] } 子節點的訪問器首先在層次結構的根節點調用。如果訪問器返回null,則該節點在布局遍歷終止被認為是葉節點。否則,訪問器應返回表示子節點數據元素的數組。 # tree.separation([separation]) 如果指定分割separation ,使用指定的函數計算兩個相鄰節點之間的分割。如果,沒有指定分割,返回當前的分割函數,默認為: function separation(a, b) { return a.parent == b.parent ? 1 : 2; } 變量更適合徑向布局按比例減少半徑之間的分割間隙: function separation(a, b) { return (a.parent == b.parent ? 1 : 2) / a.depth; } 分割函數傳入兩個相鄰節點a和b,必須返回節點之間期望的分割。如果布局決定放置這些相鄰節點,節點通常是兄弟節點,即使節點可能是表兄弟(甚至更遙遠的關系)。 # tree.size([size]) 如果指定尺寸size ,設置可用的布局尺寸為給指定的代表x和y兩個元素的數組。如果沒有指定的,返回當前的尺寸,默認是1x1。布局尺寸可能指定為x和y,但是并不限定屏幕坐標系和其他任意的坐標系統。例如,產生一個徑向布局,其中breadth (x)以度為單位,depth (y)以像素為單位的半徑r,例如[360,r]。 樹的尺寸是tree.nodeSize特有的屬性;設定tree.size設置tree.nodeSize為null。 # tree.nodeSize([nodeSize]) 如果指定了nodeSize,則為每個節點設置一個固定大小為代表x和y的兩元素數組。如果沒有指定的,則返回當前結點的尺寸,其中缺省為null表示該布局是使用整體tree.size屬性,而不是使用固定的節點大小。布局尺寸用x和y指定,但是并不受限于屏幕坐標系和其他坐標系統。 nodeSize的屬性是tree.size特有的;設定tree.size設置tree.nodeSize為null。 # tree.sort([comparator]) 如果指定比較器comparator,用指定的比較器來為布局的同級節點設置排序。如果比較器沒有被指定,則返回當前組的排序,默認為空即不排序。比較函數被節點對直接調用,傳入輸入數據的每一個結點。默認的比較器是空,沒有排序和者用樹的遍歷命令。例如,通過傳遞數據的數值來進行降序排列: function comparator(a, b) { return b.value - a.value; } 通過結點名或者關鍵字進行排序也是很普遍的。這可以用d3.ascending和d3.descending可以很容易實現。 # tree.value([value]) 如果值是指定的,則使用指定的函數來設置值訪問器。如果值沒有指定,則返回默認為空的當前值訪問器,意思是這個值的屬性不能被計算。如果指定,值訪問器被每一個輸入的數據元素調用,一定能返回一個表示結點值的數字。這個值對于布局來說是沒有意義的,但是是層次布局提供的通用函數。 * 阿呆不呆20141128 * gulu校對2014-12-7 10:20:53
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看