2014-02-05 2 views
0

Я создаю линейную диаграмму, используя dc.js.dc.js - не удается построить график линии в среднем

Ссылка для fiddle.

Задача Я сталкиваюсь с этим. Я пытаюсь построить график в среднем значений, которые в настоящее время не происходят.

В скрипке у меня есть два параметра javascript, а именно: dateHits и dateDimTotal.

dateHits произведен с использованием reduceSum и dateDimTotal - среднее по дате.

Если я группирую линейную диаграмму, используя dateHits. Линейная диаграмма появляется без каких-либо проблем.

Но если я заменил датуНастройки до dateDimTotal ничего не появляется.

Кто-то помогает мне в том, где я делаю неправильно.

ответ

0

Это jsfiddle будет отображать средние значения по дате.

Участок средних:

enter image description here

(он выглядит почти так же, как и оригинальный сюжет с вашего jsfiddle, но у значения осей различны)

Я добавлю некоторые комментарии по коду в ближайшее время ,

EDIT: Комментарии:

Вы почти закончили, но нужно пару мирам кода для всей приложение для работы.

Я переписал функцию reduceXXX() следующим образом:

function reduceAdd(p, v) { 
     ++p.count; 
     p.total += v.value; 
     if (p.count == 0) { 
      p.average = 0; 
     } else { 
      p.average = p.total/p.count; 
     }; 
     return p; 
    } 

    function reduceRemove(p, v) { 
     --p.count; 
     p.total -= v.value; 
     if (p.count == 0) { 
      p.average = 0; 
     } else { 
      p.average = p.total/p.count; 
     }; 
     return p; 
    } 

    function reduceInitial() { 
     return { 
      count: 0, 
      total: 0, 
      average: 0 
     }; 
} 

Итак, есть поле average, который будет всегда поддерживаться с правильным значением. Я думаю, что такая организация кода чище, хотя могут быть некоторые альтернативы.

Я добавил аксессор функцию тоже (так что dc.js знает, что для отображения):

.valueAccessor(function(p) { return p.value.average; }) 

Надеется, что это помогает. Дайте мне знать, если у вас есть дополнительный вопрос, или вам нужно уточнить.

+0

Да! Я пропустил «.valueAccessor». Я понял это давно. Но забыл опубликовать его здесь. В любом случае, спасибо за ваш ответ. – user3206082

+0

Можете ли вы сообщить мне, как я могу начать «ось y» от 50 или 100 вместо 0? – user3206082

+0

Задайте отдельный вопрос. – VividD