我用下面的一組數字,這是我的領域工作:使用分位數比例的意外分位數。錯誤?
[-17,-17,-13,-12,-10,-9,-8,-7,-7,-6,-6,-5,-5,-4,-3,-2,-2,-2,-2,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,5,5,5,5,5,5,5,6,6,6,7,7,7,8,8,8,8,8,9,9,9,10,10,11,11,11,12,14,15,18,19,19,22,36,39,50]
我的範圍是一套6種顏色,如下所示:
["rgb(255,232,0)", "rgb(20,162,212)", "rgb(175,94,156)", "rgb(0,177,106)", "rgb(247,148,30)", "rgb(0,82,156)"]
我的色標設置如下:
var scaleToAssignColor = d3.scale.quantile()
.domain([-17,-17,-13,-12,-10,-9,-8,-7,-7,-6,-6,-5,-5,-4,-3,-2,-2,-2,-2,-1,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,5,5,5,5,5,5,5,6,6,6,7,7,7,8,8,8,8,8,9,9,9,10,10,11,11,11,12,14,15,18,19,19,22,36,39,50])
.range(["rgb(255,232,0)", "rgb(20,162,212)", "rgb(175,94,156)", "rgb(0,177,106)", "rgb(247,148,30)", "rgb(0,82,156)"]);
當我打電話scaleToAssignColor.quantiles我得到如下:
[0, 1, 2, 2, 6.333333333333343]
,與此域一組六種顏色結果沒有,但只有五。
我明白,因爲我的輸出範圍包含6個離散值,則返回的閾陣列將僅包含5(6 - 1)值,其中它不。我不歸咎於的僅五種顏色返回的閾值配置的返回(5),但以下內容:
位數1包括小於任何數目,但不包括0; 位數2的任何數量大於,並且包括0且小於,但不包括1; 分位數3大於1且小於,但不包括2的任何數字; 分位數4大於,包括2和小於,但不包括2的任何數字; 位數5任意數量大於,和包括2且小於,但不包括6.333;和分號6的任何數字大於,包括6.333333333333343。
的擦位數是4:如永遠不會有任何數量的大於,和包括2也小於AND NOT包括,如圖2所示,對應於位數4顏色永遠不會返回。所有這些都引出了一個問題:由於這個特定的數字域(一系列註釋較少贊成一組評論)導致了奇怪的分位數4(如上所述),這是一個錯誤還是我誤解了一些問題(或對這個特定的領域和範圍使用錯誤的比例)?我懷疑是後者。
在此先感謝。
哈羅德哈珀
你有沒有探索過使用d3.scale.threshold代替?這將允許您明確定義5個閾值,以確保一組有效的值落入您的6種顏色中的每一種。當然,這取決於你想要完成的事情。 –