Apps 脚本创建的 Google 表格中的图表不会将标题显示为系列名称

问题描述 投票:0回答:1

我正在尝试使用测试数据创建一个简单的图表,以使用 Apps 脚本生成图表。我也使用 ChatGPT 来排除故障,但到目前为止还没有什么乐趣。在生成的图表中,该系列没有名称,因此图表列和图表图例为空白。

如何获取数据列和图例以将标题行文本显示为标题?

这是数据(2 行,导出为 CSV,以便我可以在此处显示):

A,B,C,D,E,F,G,H,I,J,K,L,M
227,3,3,3.666666667,3.333333333,3,4,3.666666667,3.333333333,3.5,2.5,4,3

这是创建图表的测试代码:

function createTestChart() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("TestSheet");
  
  // Define the range for the chart (including headers)
  var chartRange = sheet.getRange("A1:M2");

  // Create a column chart
  var chartBuilder = sheet.newChart()
    .setChartType(Charts.ChartType.COLUMN)
    .addRange(chartRange)
    .setPosition(5, 5, 0, 0)
    .setOption('title', 'Test Chart from A1:M2');

  var chart = chartBuilder.build();
  sheet.insertChart(chart);
}

google-apps-script google-sheets charts google-visualization
1个回答
0
投票

解决方法:切换范围的行和列

图表构建器的配置方式。它会自动为每列创建不同的系列,并将 A 列设置为标签。这并不理想,因为每个系列都有不同的数据类型(例如,系列

A1:A2
第一个值使用
A
,第二个值使用
227
),导致图表生成器忽略字母。我建议将
chartBuilder
更改为:

  var chartBuilder = sheet.newChart()
    .setChartType(Charts.ChartType.COLUMN)
    .addRange(chartRange)
    .setPosition(5, 5, 0, 0)
    .setTransposeRowsAndColumns(true) //switches the range's rows and columns
    .setOption('title', 'Test Chart from A1:M2')

生成的图表如下所示:

如果需要显示每个柱的值,还可以添加以下内容:

.setOption('series', {
  0: { dataLabel: 'value' }
})

但是,我建议限制每个值的小数位数,以便将其正确显示为图表中的标签。结果看起来像这样:

参考资料:

© www.soinside.com 2019 - 2024. All rights reserved.