Google Apps脚本:如何在电子表格中嵌入的图表中设置“将列A用作标签”?

时间:2012-11-27 23:06:26

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

我正在使用Google Apps脚本和EmbeddedChartBuilder在我的Google电子表格中嵌入折线图。手动创建这些图表时,您可以使用(非默认)选项“将列A用作标签”(其中“A”是数据范围中的第一列)。我找不到从脚本中做同样的方法。从Google Visualization Line Chart文档中可以看出,默认情况下将第一列视为具有“域”角色;但是EmbeddedChartBuilder似乎会覆盖它并为所有列提供“数据”角色。由于我没有明确的DataTable,我无法自己设置column roles

我错过了这样做的方法吗?或者我是否必须将方法从EmbeddedChartBuilder切换到using the spreadsheet as a data source

2 个答案:

答案 0 :(得分:14)

发现它!使用EmbeddedChartBuilder.setOption将选项useFirstColumnAsDomain设置为true

此选项似乎没有记录。我通过转到“发布图表”找到它(单击图表,然后从右上角的下拉列表中选择)并检查给定代码中的JavaScript数据结构。确切地说,我创建了一个图表,其中“使用列A作为标签”未选中,抓取发布数据结构,然后选中“将列A用作标签”,抓取新的发布数据结构,并比较两者。为了进行比较,我建议normalizing the JSON并运行diff。此技术可用于对图表编辑器中的任何设置进行逆向工程。

答案 1 :(得分:3)

我刚遇到同样的问题。我采用了与安德鲁类似的方法,但找到了一个不同的解决方案(大概是因为谷歌在电子表格中为他们的图表添加了功能)。

我在发布后使​​用http://jsbeautifier.org/格式化代码,我发现这部分负责添加数据标签。请注意,您甚至可以更改将条形连接到数据标签的杆的颜色:

"series": {
                    "0": {
                        "errorBars": {
                            "errorType": "none"
                        },
                        "dataLabel": "value",
                        "annotations": {
                            "stemColor": "none"
                        }
                    },
                    "color": "black",
                    "targetAxisIndex": 0,
                    "annotations": {
                        "textStyle": {
                            "color": "red",
                            "fontSize": 12
                        }
                    }
                },