Colorbrewer刻度仅返回D3地图上最轻的值

时间:2014-11-08 12:17:16

标签: javascript d3.js data-visualization colorbrewer

我试图在D3地图上使用colorbrewer比例,并且出于某种原因,它只返回最亮的值,这使得地图看起来非常褪色。我不确定问题是什么。想法?

这就是我使用比例的方式:

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

如果你想看一下,这里是地图的链接:

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

提前多多欣赏。

2 个答案:

答案 0 :(得分: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 :(得分:0)

我希望我知道 这是如何工作的,但我只知道为什么它有效。我最后指定了三个十六进制值而不是使用colorbrewer,而我使用的是0,8000,16000.D3负责其余部分。