GAS - 使用A列作为X,B列作为Y绘制折线图

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

在谷歌电子表格中,我希望使用脚本绘制折线图,​​其中A列为X,B列为Y.

但是下面的代码将绘制2行。如何将其修改为绘制一条线,就像B = f(A)一样。

function myDemoLineChart() {
   var ss = SpreadsheetApp.getActiveSpreadsheet();
   var sheet = ss.getSheets()[0];

  var range = sheet.getRange("A1:B4")
   Logger.log(range)

   var lineChart = sheet.newChart()
  .setPosition(6, 1, 0, 0)
  .setChartType(Charts.ChartType.LINE)
  .setOption("title", "Demo")
  .setOption("hAxis.title","X")
  .setOption("vAxis.title", "Y")
  .setOption("curveType","function")
  .setOption("pointSize",10)
  .setOption("width",800)
  .setOption("height",800)
  .addRange(range)
  .build()
  sheet.insertChart(lineChart)
}

输入数据如下:

A   B
3   5
1   7
4   2
2   9

输出:enter image description here

google-apps-script google-sheets google-visualization embedded-resource
1个回答
2
投票

这个修改怎么样?

  1. 按列“A”排序。
  2. 添加setOption('useFirstColumnAsDomain', true)作为选项。

Modified script:

function myDemoLineChart() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var range = sheet.getRange("A1:B4")
  Logger.log(range)

  range.sort(1); // Added

  var lineChart = sheet.newChart()
  .setOption('useFirstColumnAsDomain', true) // Added
  .setPosition(6, 1, 0, 0)
  .setChartType(Charts.ChartType.LINE)
  .setOption("title", "Demo")
  .setOption("hAxis.title","X")
  .setOption("vAxes", {0: {title: "Y"}}) // Modified
  .setOption("curveType","function")
  .setOption("pointSize",10)
  .setOption("width",800)
  .setOption("height",800)
  .addRange(range)
  .build()
  sheet.insertChart(lineChart)
}

Result:

enter image description here

References:

如果这不是你想要的结果,我道歉。

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