2014-11-08 92 views
1

我試圖在D3地圖上使用colorbrewer比例尺,並且出於某種原因,它只返回最輕的值,這使得地圖看起來非常黯淡。我不確定問題是什麼。思考?Colorbrewer比例尺只返回D3地圖上最輕的值

這是我如何使用規模:

var colorScale = d3.scale.linear() 
    .range(colorbrewer.OrRd[8]) 
    .domain([0, 16000]); 

下面是地圖的鏈接,如果你想看看:提前

http://www.pitt.edu/~kac232/PittsburghMap/map_yuji.html

許多讚賞。

+0

你可能想在這裏順序量表。 – 2014-11-08 13:14:06

+0

我不這麼認爲。我認爲序數標度更適用於分類數據。當我使用序數標度時,一些數據被不恰當地編碼(一些人口較多的社區實際上比人口較少的社區更輕,但並不一致)。 – kacmcgrath 2014-11-09 15:15:53

回答

2

您想使用d3.scale.quantize()將連續域轉換爲離散範圍;你將從一個數字到一個匹配的特定顏色。線性刻度假定連續範圍。請閱讀更多關於quantize in the documentation或查看an example in action

恰當的方式做你想要將是什麼:

var colorScale = d3.scale.quantize() 
    .range(colobrewer.OrRd[8]) 
    .domain([0, 16000]); 
+1

感謝您的幫助! – kacmcgrath 2015-01-31 14:12:15

0

我希望我知道如何這個工作,但我只知道爲什麼它的工作。我結束了只是指定三個十六進制值,而不是使用colorbrewer和域我使用0,8000,16000.D3照顧其餘。