如何绘制尺寸与其他尺寸(使用dc.js,crossfilter.js)?包括一个主题例子

时间:2014-06-12 04:17:31

标签: javascript crossfilter

首先,请提前感谢您查看我的问题!

因此,如果你点击这个要点http://bl.ocks.org/markarios/e95914454a1ef4f7f391,我有一个条形图,显示不同类型设备(桌子,手机,电脑显示器)的计数与ppi。但我也有屏幕亮度数据。我想在x轴上绘制ppi,在y轴上绘制亮度(nits)。

我目前的代码是条形图。

dc.barChart("#bar-chart-III") 
    .width(500) ```
    .height(600)
    .dimension(ppi)
    .group(count_by_ppi )
    .x(d3.scale.linear().domain([ppiExtent[0]-1,ppiExtent[1]+1]));

d3.select("#bar-chart-III").append("text").text("PPI");

但是我被卡住了,我不知道如何定义亮度变量,因此它可以替换前面代码中的count_by_ppi变量?到目前为止,我的亮度定义如下。

    var brightness = data.dimension(function(d){return d.brightness_nits})
    var count_by_brightness = brightness.group().reduceCount();

我尝试了以下但不起作用。

dc.barChart("#bar-chart-III") 
    .width(500) ```
    .height(600)
    .dimension(ppi)
    .group(brightness)
    .x(d3.scale.linear().domain([ppiExtent[0]-1,ppiExtent[1]+1]));

1 个答案:

答案 0 :(得分:0)

您需要使用与维度(ppi)相同的键创建多个组 - 为每个所需的亮度桶创建一个组。然后你将要使用dc.js .stack()方法将这些组添加到堆积条形图上(使用.group()一次和.stack()几次,IIRC)。

stack()方法记录在stack mixin下: https://github.com/dc-js/dc.js/blob/master/web/docs/api-latest.md#stack-mixin

似乎这种“桶组”是经常需要的东西,所以我将尝试在Reductio项目中为它创建一个帮助器,但我还没有得到它到目前为止。