Проблема: Вся документация, которую я вижу, использует DataTable, который записывает данные в сам скрипт. Мне нужно вызвать эту всплывающую подсказку из существующих строк. Мне нужно понять разницу в коде между HTML-страницей и встроенной диаграммой в листе Google.
Цель: У меня есть диаграмма рассеяния, для которой нужны настраиваемые всплывающие подсказки. Мне нужны данные из столбца Q для отображения в виде всплывающей подсказки при наведении курсора на данные в столбцах R и S вставьте диаграмму, используя этот код плюс всплывающую подсказку:
function newChart() {
// Generate a chart representing the data in the range of A1:B15.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[11];
var chart = sheet.newChart()
.setChartType(Charts.ChartType.SCATTER)
.addRange(sheet.getRange('R3:S5000'))
.addRange(sheet.getRange('Q3:Q5000'))
.setPosition(5, 5, 0, 0)
.build();
sheet.insertChart(chart);
}
-ИЛИ-
function drawChart() {
var dataTable = new google.visualization.DataTable();
dataTable.addColumn('string', 'Year');
dataTable.addColumn('number', 'Sales');
// A column for custom tooltip content
dataTable.addColumn({type: 'string', role: 'tooltip'});
dataTable.addRows([
['2010', 600,'$600K in our first year!'],
['2011', 1500, 'Sunspot activity made this our best year ever!'],
['2012', 800, '$800K in 2012.'],
['2013', 1000, '$1M in sales last year.']
]);
var options = {
tooltip: {isHtml: true},
legend: 'none'
};
var chart = new google.visualization.ColumnChart(document.getElementById('col_chart_html_tooltip'));
chart.draw(dataTable, options);
}
использованная литература: https://developers.google.com/chart/interactive/docs/reference#DataViewhttps://developers.google.com/chart/interactive/docs/customizing_tooltip_content#tooltip-actionshttps://developers.google.com/chart/interactive/docs/spreadsheets





во встроенной диаграмме используйте определение представления данных, чтобы добавить роль всплывающей подсказки ...
см. следующий фрагмент ...
function newChart() {
// Generate a chart representing the data in the range of A1:B15.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[11];
// build the data view definition
var COLUMN_SPEC = [
0,
1,
{sourceColumn: 2, role: 'tooltip'}
];
var viewSpec = Charts.newDataViewDefinition()
.setColumns(COLUMN_SPEC)
.build();
var chart = sheet.newChart()
.setChartType(Charts.ChartType.SCATTER)
.setDataViewDefinition(viewSpec)
.addRange(sheet.getRange('R3:S5000'))
.addRange(sheet.getRange('Q3:Q5000'))
.setPosition(5, 5, 0, 0)
.build();
sheet.insertChart(chart);
}
Итак, @whitehat, где мне ввести столбец всплывающей подсказки (Q3: 5000)? Спасибо!
Я получаю эту ошибку: TypeError: не удается найти функцию setDataViewDefinition в объекте EmbeddedChartBuilder. @WhiteHat
Поэтому, надеясь использовать ваш setDataViewDefinition, я нашел developers.google.com/apps-script/reference/charts/…, используя диаграмму рассеяния. Я также очень разочарован всеми документами, показывающими UiApp во всех своих примерах. Это делает его таким сложным, когда он смешивается с устаревшими вещами. Тогда как я могу взять пример на этой странице для работы с сервисом HTML, таким как developers.google.com/apps-script/guides/html? @Белая шляпа
Я вижу, что ваш ответ не работает. Я перечислил ошибку выше, а также мой новый план с использованием вашего setDataViewDefinition без EmbeddedChartBuilder. У вас есть какие-либо разъяснения или какие-либо способы, которые помогут мне разобраться в этом самостоятельно? спасибо @whitehat
Вот аналогичный вопрос, который может быть актуальным. ссылка на сайт