我正在使用电子表格应用程序脚本编写代码。
我正在尝试创建一个ColumnTable并进行注释或为不同的列着色。
谷歌的可视化非常清楚,但很少有关于将其与应用程序脚本一起使用的文档。
我想要执行的代码类似于:
var data = google.visualization.arrayToDataTable([
['Element', 'Density', { role: 'style' }, { role: 'annotation'}],
['Copper', 8.94, '#b87333', 'Cu' ],
['Silver', 10.49, 'silver', 'Ag' ],
['Gold', 19.30, 'gold', 'Au' ],
['Platinum', 21.45, 'color: #e5e4e2', 'Pt' ]
]);
但是我无法执行 ['Element','Density',{role:'style'},{role:'annotation'} 行,因为没有Charts.ColumnType喜欢'角色'。
有人可以帮助我吗?
答案 0 :(得分:0)
我认为您正在寻找setColumns(columns)因为它也引用Visualization Chart's DataTable Roles
<强> setColumns(列)强>
设置要包含在数据视图中的列的索引以及 指定角色列信息。这个列索引的子集 请参阅数据视图所在的数据源列 源自。
列角色描述了该列中数据的用途:for 例如,列可能包含描述工具提示文本,数据点的数据 注释或不确定性指标。有关详细信息,请参阅 Google Charts文档中的DataTable角色。
答案 1 :(得分:-1)
function myFunction() {
var presentation = SlidesApp.getActivePresentation();
var slide = presentation.getSlides()[0];
var COLUMN_SPEC = [
0, // H
1, //
{sourceColumn: 1, role: 'annotation'},
2, //
{sourceColumn: 2, role: 'annotation'}
];
var viewSpec = Charts.newDataViewDefinition()
.setColumns(COLUMN_SPEC)
.build();
var data = Charts.newDataTable()
.addColumn(Charts.ColumnType.STRING, 'H')
.addColumn(Charts.ColumnType.NUMBER, 'Test1')
.addColumn(Charts.ColumnType.NUMBER, 'Test2')
.addRow(['H1 18', 13, 33])
.addRow(['H2 18', 10, 25])
.addRow(['H1 19', 17, 23])
.addRow(['H2 19', 17, 29])
.build();
var chartBuilder = Charts.newLineChart()
.setXAxisTitle('H')
.setYAxisTitle('Value')
.setDimensions(600, 500)
.setDataViewDefinition(viewSpec)
//.setOption('useFirstColumnAsDomain', true)
.setCurveStyle(Charts.CurveStyle.NORMAL)
.setPointStyle(Charts.PointStyle.NONE)
.setLegendPosition(Charts.Position.BOTTOM)
.setDataTable(data);
var chart = chartBuilder.build();
var areaBlob = chart.getBlob().getAs('image/png').setName("areaBlob");
slide.insertImage(areaBlob, 3, 3, 306, 163);
}