Цель: Создать аннотированную диаграмму, например диаграмму пользователей / сессий на панели мониторинга Google Analytics, на которой показан график пользователей, помеченных диаграммой "7 дней назад".
Проблема: При соединении данных с использованием соединения визуализации ключи не совпадают, поэтому я получаю строки с нулевыми значениями, где я надеюсь получить строки с данными с "7 дней назад"
Я могу предоставить полные примеры кода, но они будут длинными. Самый близкий пример, который я нашел, был один здесь: сравнение с данными временных рядов предыдущей недели gi visualization api , который в концепции именно то, что мне нужно, но данные разные. Важным отличием в этом примере является то, что ключи нулевого столбца совпадают, мои - нет.
То, что я пробовал: множество вещей, включая создание представлений данных и другие методы, но это возвращает к одной проблеме, мои ключи не совпадают, поэтому он никогда не выровняет целевую дату с 7 дней назад. Я попытался добавить уникальный идентификатор в обе таблицы для соответствующего ключа, но либо я делаю это неправильно, либо он просто не работает.
Некоторые сокращенные образцы того, с чем я работаю:
Объект визуализации 1, к которому присоединяются, возвращает строки, подобные этой, сокращенно для краткости:
"rows": [
{
"c":[
{"v":"Date(2019, 3, 18)"},
{"v":693},
{"v":954}
]
},
// More rows
]
}
]
Объект визуализации 2 создает такие строки:
"rows": [
{
"c":[
{"v":"Date(2019, 3, 11)"},
{"v":728},
{"v":993}
]
},
// More rows
}
]
Когда я выполняю следующее (и перепробовал несколько вариантов), он выводит обе таблицы, но оставляет нулевые значения, а даты не совпадают, поскольку ключи столбца 0 (ноль) не совпадают.
joined_data = google.visualization.data.join(obj,join_obj,'full',[[0,0]],[1,2],[1,2]);
Создает следующее, только со значениями из объекта визуализации 1:
"rows": [
{
"c": [
{"v":"Date(2019, 3, 11)"},
{"v":null},
{"v":null},
{"v":null},
{"v":728,"f":"728","p":{}},
{"v":993,"f":"993","p":{}}
]
},
// More rows
Далее в строках результат имеет нулевые значения для второго объекта и заполненные значения для первого.
Что бы я НАДЕЖДА создать
"rows": [
{
"c": [
{"v":"Date(2019, 3, 18)"}, // current data point
{"v":"Date(2019, 3, 11)"}, // 7 days ago
{"v":693}, // users at current data point
{"v":957}, // sessions at current data point
{"v":728,"f":"728","p":{}}, // users from 7 days ago
{"v":993,"f":"993","p":{}} // sessions from 7 days ago
]
}
Может кто-нибудь пролить свет на то, как я могу создать правильный набор данных? Заранее спасибо за поиск.