【问题标题】:Add horizontal axis to a chart via Google Apps script通过 Google Apps 脚本向图表添加水平轴
【发布时间】:2019-09-04 02:58:19
【问题描述】:

我有一个创建折线图的脚本。查看数据屏幕(每行 = 1 个单独的图表,水平轴包含月份(标题行))

我无法添加带有月份的水平轴,因此我可以在图表上获得漂亮的线条。

现在统计点显示为点而不是线。

我浏览了许多主题和有关它的 Google 文档,但这让我感到困惑。

以下是我创建图表的方法:

 var chart = sheet.newChart()
        .setChartType(Charts.ChartType.LINE)
        .addRange(range) //pass a range with data from a sheet
        .setPosition(3, 3, 0, 0)
        .setOption("title", name)        
        .build();

 sheet.insertChart(chart);

所以它将数据广告为 .addRange 但我如何将月份添加为水平轴

循环遍历工作表单元格时(我从 1 到最后一行),我得到了动态范围。这是一个示例,我将前 2 行作为范围 (addRange()) 发送并获取第一行用作水平轴(标题)。

        var range = sheet.getRange(i, 3, 2, 12);          

        var months = sheet.getRange(1, 3, 1, 12)  

此方法不加横轴:

.setOption("hAxis", months)

【问题讨论】:

  • 试试addRange(months).addRange(range) 或addRange(months).addRange(range).setTransposeRowsAndColumns(true)
  • 我试过了,在第一种情况下,它将月份作为值添加到图表中,在第二种情况下,它正确添加但重复了月份,所以我得到了 2 次。如何与数据表共享屏幕截图?在聊天中?
  • 为什么不将它添加到您的问题中?还是在cmets?如果您担心隐私,Chat cmets/links 也将永久记录在 SO 中。不管怎样,试试var range = sheet.getRange(i, 3, 1, 12);(只有一行)和/或addRange(months).addRange(range).setTransposeRowsAndColumns(true).setOption("useFirstColumnAsDomain", true)
  • 这条线的工作原理相同(重复)。我也有垂直数据。我知道手动可以从垂直数据创建图表,我需要弄清楚如何使用代码来创建图表。更新了帖子。
  • table是否默认设置为最多10个水平标签?我在那里获得了最多 10 条记录,其中 25 个月重复了两次。如果我有更少的月份,我需要 12 个月或更短的时间。

标签: google-apps-script google-visualization


【解决方案1】:

这条线创建了正确的水平数据:

.addRange(range).setTransposeRowsAndColumns(true).setOption("useFirstColumnAsDomain", true)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多