Google apps script 如何向GoogleApps脚本创建的图形添加数据标签

Google apps script 如何向GoogleApps脚本创建的图形添加数据标签,google-apps-script,charts,google-visualization,Google Apps Script,Charts,Google Visualization,这是我的密码 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([

这是我的密码

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);
  }
}
我在google apps脚本中运行了
createChart()
,下面的图形被保存到驱动器中。

但是,我需要下面的图表,它有数据标签。

  • 您希望将数据标签添加到图表中
这次修改怎么样

为了实现上述功能,它使用类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

}
结果:

参考资料:
    • 我认为这份文件可能有用
如果我误解了你的问题,而这不是你想要的结果,我道歉。

  • 您希望将数据标签添加到图表中
这次修改怎么样

为了实现上述功能,它使用类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

}
结果:

参考资料:
    • 我认为这份文件可能有用

如果我误解了你的问题,而这不是你想要的结果,我道歉。

谢谢你的回答。这对我有用!非常感谢您的回复。@DggYuki谢谢您的回复。我很高兴你的问题得到了解决。谢谢你的回答。这对我有用!非常感谢您的回复。@DggYuki谢谢您的回复。我很高兴你的问题解决了。