使用示例here,我在csv中使用自己的数据集来尝试显示一个简单的折线图。但是,无论我如何为lineChart创建“组”,它都不会在图形上显示任何实际线条,也不会在轴线上显示任何y值。我正在正确地解析时间,因为画笔在图表上按预期工作,x轴有适当的时间标签。
d3.csv('weatherLogMod.csv', function(data) {
var parseDate = d3.time.format("%Y/%m/%d %H:%M");
data.forEach(function(d) {
d.absHumidity = ((6.112 * Math.exp((17.67 * +d.Temperature)/(+d.Temperature + 243.5)) * 2.1674 * +d.Humidity.replace(/[",%]/g, ''))/(273.15 + +d.Temperature));
d.date = parseDate.parse(d.Time);
d.warmth = +d.Temperature;
});
var instance = crossfilter(data);
var dateDim = instance.dimension(function(d) { return d.Time; });
var tempGroup = dateDim.group().reduceSum(function(d) {return d.warmth;});
var minDate = dateDim.bottom(1)[0].date;
var maxDate = dateDim.top(1)[0].date;
var tempChart = dc.lineChart("#chart-line-hitsperday");
tempChart
.width(500).height(200)
.dimension(dateDim)
.group(tempGroup)
.x(d3.time.scale().domain([minDate,maxDate]));
dc.renderAll();
});
我找不到我做错了什么;在控制台中,做tempGroup.all()给了我一个充满温度 - 日期值的数组:键,所以它似乎应该工作? 这是一个screenshot of my problem.
答案 0 :(得分:1)
经过一些试验和错误,我发现了它;
var dateDim = instance.dimension(function(d) { return d.Time; });
应该是:
var dateDim = instance.dimension(function(d) { return d.date; });
它工作正常。