图表服务:如何选择要显示的系列

时间:2015-12-29 17:25:21

标签: charts google-apps-script google-visualization

我正在创建一个简单的图表,以便了解Google Apps脚本中的图表服务的工作原理。到目前为止,这就是我所做的:

Spreadsheet

The chart

守则:

 function doGet() {
   var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1x9g2N5gFCAeU6DkS-BYiB6womhsNfT3kPH2L22ZI3iM/edit#gid=973420299");
   var sheetDados = ss.getSheetByName("Receita e Investimento");
   var lastLine = sheetDados.getLastRow();
   var dataTableValeus = sheetDados.getRange(16, 1, lastLine, 3).getValues();



   var data = Charts.newDataTable()
       .addColumn(Charts.ColumnType.DATE, "Data")
       .addColumn(Charts.ColumnType.NUMBER, "Cost")
       .addColumn(Charts.ColumnType.NUMBER, "Revenue");

   for(var linha = 0, len = dataTableValeus.length; linha < len; linha++){
     if (dataTableValeus[linha][0] != ""){
       data.addRow(dataTableValeus[linha]);
     }
   }

   data.build();


  var chart = Charts.newAreaChart()
       .setTitle("Revenue and Cost")
       .setDataTable(data)
       .setOption("vAxis.format", "currency")
       .setOption("hAxis.format", "d/MMM/yyyy")
       .setOption("legend.position", "top")
       .setOption("selectionMode", "multiple")
       .setOption("tooltip.trigger", "selection")
       .setOption("aggregationTarget", "series")
       .setDimensions(600, 300)
       .build();


  var dashboard = Charts.newDashboardPanel()
      .setDataTable(data)
      .build();


  var uiApp = UiApp.createApplication();

  dashboard.add(uiApp.createVerticalPanel()
                .add(uiApp.createHorizontalPanel()
                    .add(chart)
                    .setSpacing(10)));

  uiApp.add(dashboard);
  return uiApp;
 }

我想找到一种在仪表板中选择的方法,该系列显示在图表中。我已尝试过滤器,但它不起作用。

我的问题不是显示一个或另一个,甚至两个。我的问题是最终用户能够选择要查看的系列。我会像过滤器一样工作,他会选择在图表中看到一个系列,另一个或两者。

在我的示例中,我想选择图表是否只显示&#34;费用&#34;,只是&#34;收入&#34;或两者兼而有之。

1 个答案:

答案 0 :(得分:1)

您可以在dataViewDefinition上使用dataTable

显示费用...

.setDataViewDefinition({'columns': [0, 1]})

收入......

.setDataViewDefinition({'columns': [0, 2]})