<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--中文手冊]] ? [[布局]] ? **堆疊布局** * 如發現翻譯不當或有其他問題可以通過以下方式聯系譯者: * 郵箱:zhang_tianxu@sina.com * QQ群:[D3數據可視化](http://jq.qq.com/?_wv=1027&k=ZGcqYF)205076374,[大數據可視化](http://jq.qq.com/?_wv=1027&k=S8wGMe)436442115 堆疊布局需要一個二維的數據數組,并計算基準線;這個基準線會被傳到上層,以便生成一個堆疊圖。支持多個基線算法,以及啟發式的排序算來可以提高感知靈敏度,就像拜倫(Byron)和瓦騰伯格(Wattenberg)在“Stacked Graphs—Geometry & Aesthetics”(http://www.leebyron.com/else/streamgraph/download.php?file=stackedgraphs_byron_wattenberg.pdf)中所說的那樣。 堆疊布局可以工作在任意的二維x,y坐標系空間,就像是D3的其他布局一樣,包括樹布局(tree)。因此,圖層可以被垂直、水平疊放,或者是其他徑向的疊放(radially)。盡管圖表的默認偏移是零,但是依然可以使用扭動或擺動(wiggle)的偏移量來繪制流圖,它會盡量的減少在偏移時所產生的鋸齒邊界。 # d3.layout.stack() 構造一個新的堆疊布局,使用默認的偏移(零)和排序(空null);返回的布局對象是一個對象也是一個函數;也就是說:你可以向調用函數一樣調用布局,布局是具備改變其行為的方法的;和D3中其他類相似,布局遵循方法鏈模式,其中setter方法返回布局本身,并允許在一個簡單語句中調用多個setter方法。 # stack(layers[, index]) 為各層計算y坐標的基線,并傳到相應的層中。最簡單的情況,層是一個二維的值數組;所有的第二維的數組必須是相同的長度。y和x訪問器被用來分別定義每層的x坐標位置的y方向厚度;因此下面這些值都是必須的: ? x - x位置處所對應的值,即x坐標; ? y - y處厚度所對應的值; ? y0 - y方向最小的y值,即基線; 以上這些屬性可以通過重寫訪問器或out函數進行自定義。 # stack.values([accessor]) 指定在每一層中如何從相關聯的元素中提取值,訪問器是一個函數,并被傳遞給層以被調用在每一個輸入層上,相當于是在計算堆疊布局前調用了layers.map(accessor)。默認的值函數是內置對象,類似于標識函數。如果未指定訪問器accessor,則返回當前的值訪問器。 值訪問器可以被用于關聯每層額外的數據,而不僅僅是每一個點;例如,假設你的數據結構如下: var layers = [ { "name": "apples", "values": [ { "x": 0, "y": 91}, { "x": 1, "y": 290} ] }, { "name": "oranges", "values": [ { "x": 0, "y": 9}, { "x": 1, "y": 49} ] } ]; 指定一個值訪問器來檢索每層的點: var stack = d3.layout.stack() .offset("wiggle") .values(function(d) { return d.values; }); 然后,如果你想給每層添加一個tooltip,你可以這樣寫: svg.selectAll("path") .data(stack(layers)) .enter().append("path") .attr("d", function(d) { return area(d.values); }) .append("title") .text(function(d) { return d.name; }); # stack.offset([offset]) 如果指定offset,則設置堆疊的偏移算法為指定的offset ;如果未指定offset ,則返回當前的offset;以下的字符串值可以被使用: ? silhouette - 居中流,類似于 ThemeRiver; ? wiggle - 盡量減少斜率變化比例; ? expand -標準化層以填補在范圍[0,1]之間; ? zero - 使用零基線,即y軸.; 另外offset 可以是一個函數;輸入到該函數的是層數據;并已被標準化顯示:一個二維的值數組,每個元素被表示為一個二元素的數組[x,y];函數的返回值必須是一個表示基線y坐標的數組。例如,默認的零偏移實現如: function offset(data) { var j = -1, m = data[0].length, y0 = []; while (++j < m) y0[j] = 0; return y0; } # stack.order([order]) 如果指定order,設置堆疊的排序為指定的order;如果未指定,則返回當前的order。以下字符串類型的值可被使用: ? inside-out - 通過最大值的索引進行排序,然后使用平衡加權; ? reverse - 反轉輸入層的次序; ? default - 使用輸入層順序; 另外order也可以是函數;輸入到該函數的是層數據,并已被標準化顯示:一個二維的值數組,每個元素被表示為一個二元素的數組[x, y];該函數的返回值必須是一個表示層順序的索引數組。例如,默認的順序實現如: function order(data) { return d3.range(data.length); } 參見 d3.range. # stack.x([accessor]) 指定如何訪問每個值位置中的x坐標。如果指定accessor,則設置訪問器為指定的函數;如果未指定accessor,則返回當前綁定的訪問器函數;在默認情況下假定每個輸入值都有x屬性: function x(d) { return d.x; } X訪問器會被每一個輸入值調用,并且每一層,被傳遞的參數有當前數據(d)和數據元素索引(i);返回值必須是一個數字;雖然x訪問器會被每層調用,堆疊布局是假定所有層的x坐標是一致的;也就是說,堆疊布局目前需要每層都是均勻的,在相同的x坐標下,都必須包含相同個數的值;如果你的數據不符合這種規則,在你進行堆疊布局前需要整理好數據符合這種規則。 # stack.y([accessor]) 指定如何訪問每個值位置中的y坐標。如果指定accessor,則設置訪問器為指定的函數;如果未指定accessor,則返回當前綁定的訪問器函數;在默認情況下假定每個輸入值都有y屬性: function y(d) { return d.y; } X訪問器會被每一個輸入值調用,并且每一層,被傳遞的參數有當前數據(d)和數據元素索引(i);返回值必須是一個數字;隨著異常的擴大偏移,堆疊布局不會執行任何的數據自動縮放;為了簡化縮放,可以使用關聯的線性縮放linear scale或其他類似的。 # stack.out([setter]) 指定如何傳遞計算的基線給上層;如果指定setter,它將被用作該輸出/傳遞功能上;如果未指定setter,則返回當前的setter;默認情況下假定每個輸入值都有y和y0屬性: function out(d, y0, y) { d.y0 = y0; d.y = y; } setter會被每一個輸入值調用,并且每一層,被傳遞的參數有當前數據(d),已計算的y0值和已計算的y厚度;在除了expand偏移的所有情況下,y厚度是相同于y的返回值,因此可被忽略。 * 魏飛譯 2014.07.08.10.04 * gulu 校對 2014-12-6 23:08:08
                  <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>

                              哎呀哎呀视频在线观看