Я пытаюсь создавать диаграммы с помощью Google Chart API и получать диаграммы в виде изображений. Обратите внимание, что я отображаю диаграмму на стороне сервера, а не на стороне браузера (ie без использования API визуализации Google).
В некоторых моих диаграммах я рисую вертикальную линию, представляющую цель. Так как цель одинакова для всех моих разных значений x, мне просто нужно пометить ее сверху графика, как показано на рисунке ниже:
Мне удается отобразить только верхнюю метку, НО: - Как я могу удалить небольшую строку аннотации? Особенно, когда ярлыки не отображаются! - Как я могу переместить этот ярлык вверху строки вместо правого (чтобы не перекрывать метки в виде полос, например, A = 95)? - Как мне отформатировать эту уникальную метку (ie установить текст в поле с цветом фона)
Вот код, который я использовал для генерации изображений диаграммы:
var annotations = [0,
1, {calc: "stringify", sourceColumn: 1, type: "string", role: "annotation"},
2, {calc: "stringify", sourceColumn: 3, type: "string", role: "annotation"},
];
var dataViewDefinition = Charts.newDataViewDefinition().setColumns(annotations).build();
var data = Charts.newDataTable()
.addColumn(Charts.ColumnType.STRING, 'x')
.addColumn(Charts.ColumnType.NUMBER, 'act')
.addColumn(Charts.ColumnType.NUMBER, 'tgt')
.addColumn(Charts.ColumnType.STRING, 'tgt_lbl')
.addRow(['A', 90, 95, '95'])
.addRow(['B', 80, 95, ''])
.addRow(['C', 100, 95, ''])
.build();
var chart = Charts.newBarChart()
.setDataTable(data)
.setRange(0, 150)
.setOption('series', {
1: { lineWidth: 1, type: 'line'}
})
.setOption('chartArea', {'width': '80%', 'height': '100%'})
.setColors(['#D9D9D9', '#0085AD'])
.setOption('annotations', { textStyle: { color: '#000000' }})
.setDataViewDefinition(dataViewDefinition)
.build();
var folder=DriveApp.getFolderById('Folder ID');
folder.createFile(chart.getAs('image/png')).setName('Image Name');
Я видел трюк для удаления строки аннотаций при использовании API визуализации путем изменения сгенерированного SVG, но как действовать при использовании Chart API?
Спасибо за вашу помощь!