我正在使用dc.js创建仪表板,数据集包含3种类型的阅读,从1年24小时开始。 (在示例中,我仅使用15天进行演示)
这是指向JSFiddle的链接,以更好地说明我的问题http://jsfiddle.net/table315/hLzLzhss/
我使用行图来显示每个读数的总和,以及一个热图,以显示每次每天的总读数。
当选择了行图中的1种类型的读数时,热图似乎不会重新计算颜色域的最小值和最大值。 (热盒显示浅色,即使该值在当前过滤的数据集中最高。)
dayAndTimeChart
.width(30 * 24 + 500)
.height(20 * 31)
.dimension(dayAndTimeDimension)
.group(dayAndTimeGroup)
.keyAccessor(function(d) {
return d.key[0];
})
.valueAccessor(function(d) {
return d.key[1];
})
.colorAccessor(function(d) {
return d.value;
})
.colors(["#fff7ec", "#fee8c8", "#fdd49e", "#fdbb84", "#fc8d59", "#ef6548", "#d7301f", "#b30000", "#7f0000"])
.calculateColorDomain()
.title(function(d) {
return "Time: " + d.key[0] + "\n" +
"Day: " + d.key[1] + "\n" +
"value: " + d.value;
});
这里有什么我想念的吗?还是一个bug?如果是这种情况,有没有解决办法?
答案 0 :(得分:0)
这是设计使然,因为颜色映射可能有一些绝对意义。
因此,如果您希望域调整并显示每组新值的全部颜色范围,则每次重绘图表时都需要calculateColorDomain()
:
.on('preRedraw', function() {
dayAndTimeChart.calculateColorDomain();
})