2015-04-05 3 views
0

Отказываясь от примера here, я использую свой собственный набор данных в csv, чтобы попытаться отобразить простой линейный граф. Однако, независимо от того, как я создаю «группы» для lineChart, на графике не будет отображаться какая-либо фактическая строка или любые значения y на оси. Я правильно разбираю время, потому что кисть работает так, как ожидалось на графике, и ось x имеет соответствующие метки времени.График dc.js не отображает значения строк и оси y

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.

ответ

1

После некоторых проб и ошибок я понял это;

var dateDim = instance.dimension(function(d) { return d.Time; }); 

должно быть:

var dateDim = instance.dimension(function(d) { return d.date; }); 

и она отлично работает.