javascript – dc.js中的多系列折线图

我仔细查看了dc.js的文档,并注意到围绕多系列折线图的一些未解决的问题.

我的数据看起来像这样:

var data = [
 //['time','text','temperature','count'],['1379952000','field_1',91,56],'field_2',50,20],'field_3',88,24],'field_4',37],['1379953200',97,58],84,86],85,62],73]
 // etc.
];

一旦它被添加到crossfilter,我想制作一个有4行的折线图:一个用于“text”字段的每个值(即“field_1”,“field_2”,“field_3”,“field_4”).
This thread表明这样的事情是可能的.按照建议here,我在this gist中提出了代码.

我无法弄清楚如何将数据系列分成4个单独的行.我已经尝试过对数据使用过滤器了,但我最终得到了一个似乎只包含所有点的系列.

您可以在此处查看代码的实时示例:
http://bl.ocks.org/jsundram/6690354

任何帮助将非常感激.

更新:工作代码在这里http://bl.ocks.org/jsundram/6728956

最佳答案
我发布了你的要点的叉子似乎工作:http://bl.ocks.org/jrideout/6710590

关键的变化是撰写功能

.compose(fields.top(Infinity).map(function(d,fi) {
    var field = d.key;
    return dc.lineChart(time_chart)
        .group({all:function() {
            return time_fields.all().filter(function(d) {
                var f = JSON.parse(d.key)[1];
                return f==field && d.value > 0;});
        }},field)
        .colors(['#1f77b4','#ff7f0e','#2ca02c','#d62728'])
        .colorAccessor(function(){return fi;})
        .keyAccessor(dateAcc);
}));

我创建了一个像对象{all:data}这样的组,其中包含您的组,但是按键过滤.

编辑:DC现在正在使用seriesChart来实现自动化.见:http://nickqizhu.github.io/dc.js/examples/series.html

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...