2014-11-08 38 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照顾其余。