Javascript Google应用程序脚本电子表格:添加新系列以从代码绘图

Javascript Google应用程序脚本电子表格:添加新系列以从代码绘图,javascript,google-apps-script,google-sheets,google-visualization,Javascript,Google Apps Script,Google Sheets,Google Visualization,我有一个电子表格,其中有4列数据和散点图,其中第一列用作X轴,其他3列是要表示的系列 所以,当我在一个没有任何代码的电子表格中设置它时,它工作了,并且显示了系列 现在我想再添加3个系列。因此,我将B、C和D列复制到E、F和G列(它们将被重复,但对于这个测试来说是可以的)。按下按钮时,我正在执行此操作: function test() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var rang

我有一个电子表格,其中有4列数据和散点图,其中第一列用作X轴,其他3列是要表示的系列

所以,当我在一个没有任何代码的电子表格中设置它时,它工作了,并且显示了系列

现在我想再添加3个系列。因此,我将B、C和D列复制到E、F和G列(它们将被重复,但对于这个测试来说是可以的)。按下按钮时,我正在执行此操作:

function test() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var rangeToCopy = sheet.getRange(20, 2, 219, 4);
  rangeToCopy.copyTo(sheet.getRange(20, 5));

  var series_settings = [
    {'color': 'blue', 'labelInLegend' : 'Serie1', 'lineWidth': 1, 'pointSize': 0},
    {'color': 'red',  'labelInLegend' : 'Serie2',     'lineWidth': 1, 'pointSize': 0},
    {'color': 'purple',  'labelInLegend' : 'Serie3', 'lineWidth': 1, 'pointSize': 0}
  ]

  series_settings.push({'color': 'turquoise',  'labelInLegend' : 'Serie4', 'lineWidth': 1, 'pointSize': 0, 'lineDashStyle': [4, 4]});
  series_settings.push({'color': 'orange',  'labelInLegend' : 'Serie5', 'lineWidth': 1, 'pointSize': 0});
  series_settings.push({'color': 'plum',  'labelInLegend' : 'Serie6', 'lineWidth': 1, 'pointSize': 0});

  var charts = sheet.getCharts();
  chart = charts[0];
  chartBuilder = chart.modify();
  chartBuilder = chartBuilder.clearRanges();
  chartBuilder = chartBuilder.addRange(sheet.getRange(20, 1, 200, 7));
  chartBuilder = chartBuilder.setOption('series', series_settings);
  chart = chartBuilder.build();
  sheet.updateChart(chart);
}
关于幻数:数据由200行组成,从第20行开始,如前所述由7列组成(A中的x轴,BCD中的3列序列,EFG中的3列序列的副本)

因此,当我按下按钮时,只显示E列,但图例中正确显示了所有系列。我试过:

显然,这个文件是在这里发布的一个简短示例。在我的项目中,行为略有不同:前3个系列显示正确,但3个副本在图表中不可见,尽管它们出现在图例中


知道我做错了什么吗?

我正在测试您共享的工作表,按下按钮后,它确实会显示我所能看到的其他列,至少在系列5和系列6中,它们的值与系列4相同,因此它们彼此重叠。如果项目中的副本具有相同的值,则它们也会像这样重叠,使您看不见them@AMolina在另一个项目中,我创建列的副本,然后修改列BCD(这样我可以与以前的执行进行比较),这样它们就不会重叠。在这里,我这样写只是为了简化示例,因为我想说明我使用copy函数只是为了确保这不是问题的根源。在本例中,将复制列,但不在图表中显示。我只能看到系列4(我将在问题中添加一个快照),我想我刚刚找到了答案,您在所有情况下都设置了
pointSize=0
,因此它不会显示,它基本上是一条空行,如果您给它一个值,它实际上会显示点。@AMolina它确实有效,但我确实喜欢pointsize=0时的外观,因此只显示穿过点的线。。。如果无法提供其他解决方案,我会接受,但奇怪的是,您可以设置一个小尺寸,如
0.1
,以查看它是否看起来更像一条线,同时使整个内容更清晰。我正在测试您共享的工作表,按下按钮后,它实际上会显示我可以看到的其他列,至少是系列5和6,它们的值与系列4相同,因此它们都相互重叠。如果项目中的副本具有相同的值,则它们也会像这样重叠,使您看不见them@AMolina在另一个项目中,我创建列的副本,然后修改列BCD(这样我可以与以前的执行进行比较),这样它们就不会重叠。在这里,我这样写只是为了简化示例,因为我想说明我使用copy函数只是为了确保这不是问题的根源。在本例中,将复制列,但不在图表中显示。我只能看到系列4(我将在问题中添加一个快照),我想我刚刚找到了答案,您在所有情况下都设置了
pointSize=0
,因此它不会显示,它基本上是一条空行,如果您给它一个值,它实际上会显示点。@AMolina它确实有效,但我确实喜欢pointsize=0时的外观,因此只显示穿过点的线。。。如果无法提供其他解决方案,我会接受它,但奇怪的是,您可以设置一个小尺寸,如
0.1
,以查看它是否更像一条线,同时使整个内容更清晰可见。