Как добавить метки данных на график, созданный скриптом Google Apps - PullRequest
1 голос
/ 19 февраля 2020

Вот мой код.

function createChart(){

  var data = Charts.newDataTable()
    .addColumn(Charts.ColumnType.STRING, "month")
    .addColumn(Charts.ColumnType.NUMBER, "A")
    .addColumn(Charts.ColumnType.NUMBER, "B")
    .addRow(["Feb", 10, 5])
    .addRow(["Mar", 12, 3])
    .addRow(["Apr", 20, 5])
    .build();
   var chart = Charts.newBarChart()
      .setDataTable(data)
      .setStacked()
      .setOption('series', {
          0: {dataLabel: 'value'},
          1: {dataLabel: 'value'},
        })
      .setTitle('Sales per Month')
      .build();
  saveGraph2Drive(chart)

  return

}


function saveGraph2Drive(chart) {
  var folderId = 'xxxxx'; // Google Drive Folder ID
  var today = Utilities.formatDate(new Date(), 'Asia/Tokyo', 'YYYY-MM-dd');
  try {
    var graphImg = chart.getBlob();
    var folder = DriveApp.getFolderById(folderId);
    folder.createFile(graphImg).setName(today);
  } catch (e) {
    Browser.msgBox(e);
  }
}

Я запускаю createChart() в скрипте приложений Google, и следующий график был сохранен на диск.
The graph without datalabes

Но, Мне нужен следующий график, в котором есть метки данных.
The graph with data labels

1 Ответ

0 голосов
/ 19 февраля 2020
  • Вы хотите добавить метки данных на диаграмму.

Как насчет этой модификации?

Для достижения вышеупомянутых целей используется класс DataViewDefinitionBuilder.

Модифицированный скрипт:

Когда ваш скрипт модифицирован, пожалуйста, измените его следующим образом.

function createChart(){
  var annotations = [0,  // Added
    1, {calc: "stringify", sourceColumn: 1, type: "string", role: "annotation"},
    2, {calc: "stringify", sourceColumn: 2, type: "string", role: "annotation"},
  ];
  var dataViewDefinition = Charts.newDataViewDefinition().setColumns(annotations).build();  // Added

  var data = Charts.newDataTable()
    .addColumn(Charts.ColumnType.STRING, "month")
    .addColumn(Charts.ColumnType.NUMBER, "A")
    .addColumn(Charts.ColumnType.NUMBER, "B")
    .addRow(["Feb", 10, 5])
    .addRow(["Mar", 12, 3])
    .addRow(["Apr", 20, 5])
    .build();
   var chart = Charts.newBarChart()
      .setDataTable(data)
      .setStacked()
      .setOption('series', {
          0: {dataLabel: 'value'},
          1: {dataLabel: 'value'},
        })
      .setTitle('Sales per Month')
      .setDataViewDefinition(dataViewDefinition)  // Added
      .build();

  saveGraph2Drive(chart)

  return

}

Результат:

enter image description here

Ссылки:

Если я неправильно понял ваш вопрос, и это был не тот результат, который вы хотите, я прошу прощения .

...