У меня есть эта функция сценария приложения для создания новой диаграммы:
function newChart(range, sheet) {
var chart = sheet.newChart()
.setChartType(Charts.ChartType.LINE)
.addRange(range)
.setPosition(5, 5, 0, 0)
.setOption("title", "Model run 1")
.setOption("pointSize", 2)
.setOption("lineWidth", 1)
.build();
sheet.insertChart(chart);
}
Как бы я изменил оси x и y, я хочу иметь возможность указать, какой столбец моего диапазона должен быть рядом и какая ось x. Как бы я это сделал?
@Tanaike У меня есть диаграмма, и я столбец B моего диапазона должен быть осью x, а столбец A - осью y, имеет ли это смысл?
Спасибо за ответ. Что касается I have a chart and I column B of my range to be the x axis and column A to be the y axis, does that make sence?
, в вашей текущей ситуации оси x и y — это столбцы «A» и «B» соответственно, и вы хотите изменить столбцы «A» и «B» на «B» и «A» в тот же лист. Правильно ли я понимаю?
Угадав вашу цель, я предложил в качестве ответа 3 примера скриптов. Не могли бы вы подтвердить это? Если они не были полезны, я извиняюсь.
В вашей ситуации, как насчет следующей примерной ситуации и сценариев?
Образец электронной таблицы выглядит следующим образом.
В следующих примерах сценариев эта электронная таблица используется в качестве образца.
function sample1() {
var sheet = SpreadsheetApp.getActiveSheet();
var colA = sheet.getRange("A1:A6");
var colB = sheet.getRange("B1:B6");
var chart = sheet.newChart()
.setChartType(Charts.ChartType.LINE)
.addRange(colA)
.addRange(colB)
.setOption('useFirstColumnAsDomain', true) // This might not be required to be used.
.setPosition(5, 5, 0, 0)
.setOption("title", "Sample 1")
.setOption("pointSize", 2)
.setOption("lineWidth", 1)
.build();
sheet.insertChart(chart);
}
В этом скрипте создается следующая диаграмма.
function sample2() {
var sheet = SpreadsheetApp.getActiveSheet();
var colA = sheet.getRange("A1:A6");
var colB = sheet.getRange("B1:B6");
var chart = sheet.newChart()
.setChartType(Charts.ChartType.LINE)
.addRange(colB)
.addRange(colA)
.setOption('useFirstColumnAsDomain', true) // This might not be required to be used.
.setPosition(5, 5, 0, 0)
.setOption("title", "Sample 2")
.setOption("pointSize", 2)
.setOption("lineWidth", 1)
.build();
sheet.insertChart(chart);
}
В этом скрипте создается следующая диаграмма.
function sample3() {
var sheet = SpreadsheetApp.getActiveSheet();
var chart = sheet.getCharts()[0];
var ranges = chart.getRanges();
var c = chart.modify();
ranges.forEach(r => c.removeRange(r));
ranges.reverse().forEach(r => c.addRange(r));
sheet.updateChart(c.build());
}
именно то, что мне нужно, я не понимал, что могу добавить диапазон более одного раза, тысм.
@ tovernaar123 Спасибо за ответ. Я рад, что ваша проблема была решена. И тебе спасибо.
Я должен извиниться за мое плохое знание английского языка. К сожалению, я не могу понять
How would I change the x and y axis, I want to be able to specify what column of my range should be series and what the x axis.
. Могу я спросить вас о деталях вашей цели?