Линейная диаграмма dc.js, агрегированная по месяцам / годам
Я пытаюсь построить lineChart и хочу агрегировать данные по месяцам. Я использую набор данных из документации по кроссфильтру с небольшими изменениями в дате.
Вот так выглядит мой набор данных:
var data = [
{date: "2011-11-14T16:17:54Z", quantity: 2, total: 190, tip: 100, type: "tab"},
{date: "2011-07-10T16:28:54Z", quantity: 1, total: 300, tip: 200, type: "visa"},
{date: "2011-07-15T16:28:54Z", quantity: 1, total: 300, tip: 200, type: "visa"},
{date: "2011-06-14T16:30:43Z", quantity: 2, total: 90, tip: 0, type: "tab"},
{date: "2011-06-14T16:48:46Z", quantity: 2, total: 90, tip: 0, type: "tab"},
{date: "2011-05-14T16:53:41Z", quantity: 2, total: 90, tip: 0, type: "tab"},
{date: "2011-07-17T16:14:06Z", quantity: 1, total: 100, tip: 0, type: "cash"},
{date: "2011-05-14T16:58:03Z", quantity: 2, total: 90, tip: 0, type: "tab"},
{date: "2011-12-14T17:07:21Z", quantity: 2, total: 90, tip: 0, type: "tab"},
{date: "2011-11-14T17:22:59Z", quantity: 2, total: 90, tip: 0, type: "tab"},
{date: "2011-11-14T17:25:45Z", quantity: 2, total: 200, tip: 0, type: "cash"},
{date: "2011-11-14T17:29:52Z", quantity: 1, total: 200, tip: 100, type: "visa"}
];
Я хочу сгруппировать итоги по месяцам и годам. Моя группа данных возвращает общее количество на основе даты, а не месяца.
На моем графике 10, 15 и 17 июля изображены как разные точки. Я хочу объединить их все в очки июля-2017. Как мне достичь этого? Есть указатели? Спасибо всем!
вот скрипка: https://jsfiddle.net/usingh2buffaloedu/8u0etnwd/
1 ответ
У меня были проблемы с рендерингом времени в dc.js, но в вашем примере ключом является получение значений месяца в вашем измерении.
var dateDimension = facts.dimension(function (d) {return d3.time.month(d.newDate); });
Смотрите обновленную скрипку ( https://jsfiddle.net/ury1k1bs/1/)
Я думаю, что метод диаграммы.round() полезен только для чистки, а не для рендеринга.
Для получения дополнительной информации см. Пример временного интервала, предоставленный dc.js... http://dc-js.github.io/dc.js/examples/switching-time-intervals.html