#google-apps-script #google-visualization
#google-приложения-скрипт #google-визуализация
Вопрос:
У меня есть скрипт, который создает линейную диаграмму. См. Экран данных (каждая строка = 1 отдельная диаграмма с горизонтальной осью, содержащей месяцы (строка заголовка))
Я не могу добавить горизонтальную ось с месяцами, чтобы получить красивые линии на графике.
Прямо сейчас точки статистики отображаются в виде точек, а не линий.
Я просмотрел много тем и документацию Google по этому вопросу, но это сбивает меня с толку.
Вот как я создаю диаграмму:
var chart = sheet.newChart()
.setChartType(Charts.ChartType.LINE)
.addRange(range) //pass a range with data from a sheet
.setPosition(3, 3, 0, 0)
.setOption("title", name)
.build();
sheet.insertChart(chart);
Таким образом, данные отображаются как .AddRange, но как я могу добавить месяцы в качестве горизонтальных осей
Я получаю диапазоны динамически при циклическом перемещении по ячейкам листа (i от 1 до последней строки). Это пример, в котором я отправляю первые 2 строки в виде диапазона (addRange())
и получаю первую строку для использования в качестве горизонтальной оси (заголовки).
var range = sheet.getRange(i, 3, 2, 12);
var months = sheet.getRange(1, 3, 1, 12)
Этот метод не добавляет горизонтальную ось:
.setOption("hAxis", months)
Комментарии:
1. Попробуйте
addRange(months).addRange(range)
илиaddRange(months).addRange(range).setTransposeRowsAndColumns(true)
2. Я попробовал это, и в 1-м случае он добавил месяцы к диаграмме в качестве значений, во 2-м случае он добавил правильно, но дублировал месяцы, поэтому я получил их 2 раза. Как я могу поделиться скриншотом с таблицей данных? в чате?
3. Почему бы не добавить это в свой вопрос? Или в комментариях? Если вы беспокоитесь о конфиденциальности, комментарии / ссылки в чате также записываются в SO навсегда. В любом случае, попробуйте
var range = sheet.getRange(i, 3, 1, 12);
(только одну строку) и / илиaddRange(months).addRange(range).setTransposeRowsAndColumns(true).setOption("useFirstColumnAsDomain", true)
4. эта строка работает одинаково (дублируется). Также у меня есть вертикальные данные. Я знаю, что вручную я могу создать диаграмму из вертикальных данных, мне нужно выяснить, как это сделать с помощью кода. Обновил сообщение.
5. Задана ли таблица по умолчанию, чтобы иметь не более 10 горизонтальных меток? У меня там максимум 10 записей с 25 месяцами, дублирующимися два раза. Мне нужно 12 месяцев или меньше, если у меня меньше месяцев.
Ответ №1:
Эта линия создала правильные горизонтальные данные:
.addRange(range).setTransposeRowsAndColumns(true).setOption("useFirstColumnAsDomain", true)