我如何绘制一个维度vs另一个维度(使用dc.js, crossfilter.js) ?包括一个启动示例

How do I plot a dimension vs an other dimension (using dc.js, crossfilter.js) ? a gistup example is included

本文关键字:js crossfilter 包括一 启动 dc 使用 一个 何绘制 另一个 vs 绘制      更新时间:2023-09-26

首先,提前感谢你看我的问题!

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

我当前的代码是这个柱状图。

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]));

您需要创建几个具有与您的维度(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项目中为它创建一个帮助器,但我还没有抽出时间。