2015-03-31 172 views
1

我正在绘制一个时间序列折线图,其中x轴需要时间,y轴需要其他应答值。我需要帮助。该图不是用下面的代码绘制的。它仅显示线条(轴)和标签,但不显示图形或坐标轴上的值。dc.js时间序列折线图

data = [{"date": "31-03-2015 11:05:36", "snr": 3.2}, {"date": "31-03-2015 11:05:36", "snr": 4.9},...{"date": "31-03-2015 11:05:36", snr: 5.0}]; 

var parseDate = d3.time.format("%d-%m-%Y %H:%M:%S").parse; 
     data.forEach(function(d) { 
        d.date = parseDate(d.date); 
        }); 

var dimByTime = cf.dimension(function(d) { return d.date;}); 
     var groupForSNR = dimByTime.groupAll(); 
     groupForSNR.all = function() { return 1; }; 

var snrAP = dc.lineChart("#snrAP"); 
     snrAP 
     .dimension(dimByTime) 
     .group(groupForSNR).valueAccessor(function(d) { return d.value.snr; }) 
     .x(d3.time.scale()) 
     .xUnits(d3.time.day); 
dc.renderAll(); 

我要显示snr在y轴和x轴对应的time

回答

2

那么,我已经修复它自己。可能不是最佳的解决方案,但它仍然符合我的目的。这里是修改代码...

var dimByTime = cf.dimension(function(d) { return d3.time.minute(d.date);}); 
     var groupForSNR = dimByTime.group().reduce(
                function reduceAdd(p, v) { return v.snr; }, 
                function reduceRemove(p, v) { return v.snr; }, 
                function reduceInitial() { return 0; }); 
     groupForSNR.dispose(); 

var snrAP = dc.lineChart("#snrAP"); 
     snrAP 
     .dimension(dimByTime) 
     .group(groupForSNR) 
     .x(d3.time.scale().domain([new Date(2015, 02, 21), new Date()])) 
     .xUnits(d3.time.minute) 
     .title(function(d){ return "Time: " + d.data.key.toDateString() + "\nS/N Ratio: " + numFormat(d.data.value); }) 
     .xAxis().ticks(5);