DC.js Heatmaps每行色标

时间:2015-05-29 08:54:34

标签: dc.js

我有一个热图,想要为每一行单独设置颜色方案。那可能吗?使用以下代码,我可以创建一个工作热图,但所有行的颜色都相同。

fooHeatmap = dc.heatMap("#fooHeatmap")
                .width(width)
                .height(height)
                .dimension(fooDim)
                .group(fooGroup)
                .keyAccessor(function(d) { return d.key[0]; })
                .valueAccessor(function(d) { return d.key[1]; })
                .colorAccessor(function(d) { return d.value; })
                .colors(d3.scale.linear()
                    .domain([0,1, fooGroup.top(1)[0].value])
                    .range(["#bbb","#D0DDFF","blue"]))

1 个答案:

答案 0 :(得分:2)

dc.js每个图表只使用一个颜色比例,但您可以将var vm = this; vm.treedata = [{ "name": "Titel", "id": "1" }, { "name": "Allgemeine Standardangaben", "id": "2" }]; vm.text = "Hallo"; 组合到颜色存取器中以创建不相交的颜色空间,并为颜色比例指定多个域值以便创建多个颜色范围。

这称为polylinear scale

E.g。如果d.key[1]介于0.0和1.0之间,d.value为0,1,2,3 ...:

.d.key[1]

现在 .colorAccessor(function(d) { return d.key[1]*2 + d.value; }) .colors(d3.scale.linear() .domain([0,1,2,3,4,5...]) .range([color0,color1,color2,color3,color4,color5...])) 将返回介于0.0-1.0,2.0-3.0,4.0-5.0之间的值......并且线性比例将在color0-color1,color2-color3,color4-color5之间映射...

这有点棘手,你必须知道所有的行值。