crossfilter dc.barChart呈现不带条的空图表

时间:2019-04-25 13:09:38

标签: dc.js crossfilter

我正在绘制具有日期的尺寸的交叉过滤器条形图。据我所知,x轴是暗的,我以日期作为暗的。但是图表是空的。

我检查了varGroup.size(),该数据将按预期返回6,因为数据跨越6天,并且我已将日期解析为天。

var varCountDim = ndx.dimension(function (d) { return d.created_at;} );
var varCountGroup = varCountDim.group( function (d) {if (d.length) return d; })
var minDate = varCountDim.bottom(1)[0].created_at;
var maxDate = varCountDim.top(1)[0].created_at;
var dateChart = dc.barChart("#date-chart");


dateChart
.width(780)
.height(400)
.margins({top: 10, right: 50, bottom: 20, left: 40})
.dimension(varCountDim)
.group(varCountGroup)
.transitionDuration(500)
.x(d3.time.scale().domain([minDate, maxDate]))
.elasticY(true)
.xUnits(function(){return 20;})
.yAxis().ticks(4);
 dateChart.render();

varCountGroup的内容是:

enter image description here

预期结果是一个条形图,其中x轴为日期,y轴为varcount。唯一出现的是轴线,没有横线

1 个答案:

答案 0 :(得分:1)

问题似乎出在,您正在使用时间刻度,但尚未将日期字符串转换为日期对象。

尽管您可以在维度键功能中执行此操作,但在初始化交叉过滤器之前执行此操作效率更高。

这看起来像

var parse = d3.timeParse("%Y-%m-%d");
data.forEach(function(d) {
    d.created_at = parse(d.created_at);
});
var ndx = crossfilter(data);