【问题标题】:Define Haxes Values定义轴值
【发布时间】:2020-11-02 10:10:07
【问题描述】:

我遇到了这个问题:我有一个已定义的工作表,其中填充了按列组织的数据。我必须将一些列绘制成嵌入式图表。我没有问题绘制系列并定义到垂直轴。我的问题是我不知道如何定义和显示水平轴的值。该轴的值位于工作表的一列中(这些值是一些日期)。我尝试了几种选择,但都完全没用。下面的代码来弄清楚有什么意义。 任何想法都被接受! 提前谢谢大家!

function myFunction() {
 var FoglioAttivo = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var NomeFoglioAttivo = FoglioAttivo.getName();
 var SettedValue = FoglioAttivo.getRange("T2").setValue(NomeFoglioAttivo);
 

 var TotCons = FoglioAttivo.getRange("P1:P");
 var TotRiemp = FoglioAttivo.getRange("R1:R");
 var Livello = FoglioAttivo.getRange("E1:E");
 var Intervallo = FoglioAttivo.getRange("K1:K");
 var FirstValue = Intervallo.getValues()[1][0];
 var chartBuilder = FoglioAttivo.newChart();
 chartBuilder
     .setChartType(Charts.ChartType.COMBO)
     .addRange(TotCons)
     .addRange(TotRiemp)
     .addRange(Livello)
     .setOption('series',{
     0:{type: 'area', color: 'blue',labelInLegend: 'Totalizzazione Consumi Lt'},
     1:{type: 'area', color: 'red', labelInLegend: 'Totalizzazione Riempimenti Lt'},
     2:{type: 'line', color: 'green', targetAxisIndex: 1, labelInLegend: 'Livello Lt'},
     } )
     .setOption('vAxes', {
     0: { title:'Tot Lt', orientation:'vertical', fontSize: 20},
     1: { title:'Lt', orientation:'vertical', fontSize: 20 },
     })
     .setOption('hAxis',{
     title: 'Intervallo', orientation:'vertical', chxr: Intervallo},)  
     .setPosition(3,20,0,0)
     ;  
     FoglioAttivo.insertChart(chartBuilder.build());} ``` 


【问题讨论】:

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


    【解决方案1】:

    我终于找到了正确的方法。我是如此接近! 在工作代码下方! 我只需创建一个新范围并将其定义为域!

    function GeneraGrafico() {
      var FoglioAttivo = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
      var NomeFoglioAttivo = FoglioAttivo.getName();
      var SettedValue = FoglioAttivo.getRange("T2").setValue(NomeFoglioAttivo);
      
     
      var TotCons = FoglioAttivo.getRange("P1:P");
      var TotRiemp = FoglioAttivo.getRange("R1:R");
      var Livello = FoglioAttivo.getRange("E1:E");
      var Intervallo = FoglioAttivo.getRange("K1:K");
      var FirstValue = Intervallo.getValues()[1][0];
      var chartBuilder = FoglioAttivo.newChart();
      chartBuilder
          .setChartType(Charts.ChartType.COMBO)
          .addRange(Intervallo)
          .addRange(TotCons)
          .addRange(TotRiemp)
          .addRange(Livello)
          .setOption('useFirstColumnAsDomain', true)
          .setOption('series',{
          0:{type: 'area', color: 'blue',labelInLegend: 'Totalizzazione Consumi Lt'},
          1:{type: 'area', color: 'red', labelInLegend: 'Totalizzazione Riempimenti Lt'},
          2:{type: 'line', color: 'green', targetAxisIndex: 1, labelInLegend: 'Livello Lt'},
          } )
          .setOption('vAxes', {
          0: { title:'Tot Lt', orientation:'vertical', fontSize: 20},
          1: { title:'Lt', orientation:'vertical', fontSize: 20 },
          })
          .setOption('hAxis',{
          title: 'Intervallo', orientation:'vertical'},
         
                )  
          .setPosition(3,20,0,0)
          ;
               
          FoglioAttivo.insertChart(chartBuilder.build());
     
      
    }```
    

    【讨论】:

      【解决方案2】:

      另一种解决方案

      虽然您自己似乎已经解决了这个问题,但这里有另一种解决方案。

      似乎vAxishAxis 使用不同的语法,对我来说,这很有效:

      chartBuilder.addRange(range)
        .setChartType(Charts.ChartType.BAR)
      
      // VERTICAL AXES
        .setOption('vAxes', {
          0: {title: "VAXES"},
          })
      
      // HORIZONTAL AXES
        .setOption("hAxis.title", "HAXES") // Note the object notation to get the the title!
      
      
        .setPosition(5,5,0,0);
      

      参考文献

      【讨论】:

        猜你喜欢
        • 2012-07-15
        • 2022-01-15
        • 1970-01-01
        • 2012-11-14
        • 1970-01-01
        • 1970-01-01
        • 2020-07-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多