问题描述
我是Apps Script的新手,如果这是一个愚蠢的问题,我深表歉意,但我一直找不到答案。我正在使用Google表格来绘制我的PSU的温度。我创建了一个宏,用于选择数据范围,插入图表并修改图表中除“ Y轴最小最大值”一项以外的任何内容的格式,具有讽刺意味的是,我唯一有兴趣更改的内容。
下面是宏,它做一件事,将Min Max值更改为40/90。对于第一个条目,它输入NaN而不是值。我尝试更改此设置,但没有帮助。
我读了一些有关更改数据格式的内容,但是我不确定如何做到这一点。在创建宏时,我尝试通过GUI进行此操作,但这没有帮助。
非常感谢您提供的任何指导。
function FormatYAxis() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('B:B').activate();
var sheet = spreadsheet.getActiveSheet();
var charts = sheet.getCharts();
var chart = charts[charts.length - 1];
sheet.removeChart(chart);
chart = sheet.newChart()
.asLineChart()
.addRange(spreadsheet.getRange('B1:B552'))
.setMergeStrategy(Charts.ChartMergeStrategy.MERGE_COLUMNS)
.setTransposeRowsAndColumns(false)
.setNumHeaders(1)
.setHiddenDimensionStrategy(Charts.ChartHiddenDimensionStrategy.IGnorE_BOTH)
.setoption('useFirstColumnAsDomain',false)
.setoption('curveType','none')
.setoption('domainAxis.direction',1)
.setoption('isstacked','false')
.setoption('title','GPU Temp')
.setRange(40,NaN)
.setoption('vAxes.0.viewWindowMode','explicit')
.setoption('series.0.labelInLegend','GPU Temp')
.setPosition(3,4,58,1)
.build();
sheet.insertChart(chart);
charts = sheet.getCharts();
chart = charts[charts.length - 1];
sheet.removeChart(chart);
chart = sheet.newChart()
.asLineChart()
.addRange(spreadsheet.getRange('B1:B552'))
.setMergeStrategy(Charts.ChartMergeStrategy.MERGE_COLUMNS)
.setTransposeRowsAndColumns(false)
.setNumHeaders(1)
.setHiddenDimensionStrategy(Charts.ChartHiddenDimensionStrategy.IGnorE_BOTH)
.setoption('useFirstColumnAsDomain',90)
.setoption('vAxes.0.viewWindowMode',1)
.build();
sheet.insertChart(chart);
};
解决方法
以下选项将在y轴上设置最小值和最大值。
但是,在y轴上绘制的值必须是数字,而不是字符串...
.setOption('vAxis.viewWindow.min',40)
.setOption('vAxis.viewWindow.max',90)