> [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
直方圖布局可以用來表示數據分布,通過將離散數據點分組歸納到箱子里。使用實例詳見bl.ock 3048450。
# d3.layout.histogram()
使用默認值訪問器、范圍函數和箱函數,構建新的直方圖函數。默認條件下,直方圖函數返回值為頻率。返回布局對象既是一個對象,也是一個函數。即: 可以像調用其他函數一樣調用該布局,并且布局有額外的方法改變自身行為。和D3中的其他類一樣,布局遵循方法鏈模式,在該模式下setter方法返回布局本身,允許使用簡單語句調用多個setter。
# histogram(values[, index])
在指定的values數組上計算直方圖。可以指定一個可選參數index, 傳遞給范圍函數和箱函數。返回值為數組的數組:外部數組的每個元素表示一個容器,每個容器包含輸入values的相關元素。此外,每個容器有三個屬性:
? x -箱的下界(包含)。
? dx -箱的寬度;x + dx為上界(不包含)。
? y - the count (if frequency is true), or the probability (if frequency is false).計數(如果frequency為true),或概率(如果frequency為假)。
請注意,在頻率方式上,y屬性和長度屬性相同。
# histogram.value([accessor])
指定從關聯數據中提取值的方法;accessor是一個函數,每當輸入值傳遞到histogram時,都需要調用該函數,即等于在計算直方圖之前調用values.map(accessor)。默認值函數為內置Number,與恒等函數類似。如果未指定accessor,則返回當前值訪問器。
# histogram.range([range])
指定直方圖范圍。忽略在指定范圍之外的值。可以通過二元數組指定range,數組表示范圍的最大值和最小值;或者將range指定為一個函數,該函數返回values數組和傳遞到histogram的當前索引。默認范圍為值的長度(minimum和maximum)。如果未指定range,則返回當前范圍函數。
# histogram.bins()
# histogram.bins(count)
# histogram.bins(thresholds)
# histogram.bins(function)
詳細說明如何將值歸類到直方圖中。如果沒有指定參數,則返回當前箱函數,默認值為Sturges' formula的一個實現,Sturges' formula使用等間隔的值將值劃分到不同的箱當中。如果已經指定count值,則將range的值均勻分布到指定數量的箱中。
如果已指定thresholds數組,則它定義了箱的極限值,從最左邊的值(最小值)開始到最右邊的值(最大值)。n + 1 thresholds指定了n個箱。任何小于thresholds[1]的值都將被放在第一個箱中;同理,任何大于或等于thresholds[thresholds.length - 2]的值將被放在最后一個箱中。因此,雖然第一個和最后一個極值并未分配到箱中,但他們對于定義第一個箱的x屬性和最后一個箱的dx屬性還是有必要存在的。
最后,如果已經指定箱function,該函數會在布局傳遞數據時調用,傳遞當前range,值得數列和當前索引傳遞到histogram。該函數必須返回上文所述的thresholds數列。
# histogram.frequency([frequency])
指定直方圖的y值是否是一個計數(頻率)或概率(密度);默認值為頻率。如果沒有指定頻數,則返回當前頻率的布爾值。
張爍譯 20140430 咕嚕校對 2014-11-30 10:42:08