Как установить оси X и Y EmbeddedChartBuilder

У меня есть эта функция сценария приложения для создания новой диаграммы:

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. Как бы я это сделал?

Я должен извиниться за мое плохое знание английского языка. К сожалению, я не могу понять 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.. Могу я спросить вас о деталях вашей цели?

Tanaike 23.11.2022 02:08

@Tanaike У меня есть диаграмма, и я столбец B моего диапазона должен быть осью x, а столбец A - осью y, имеет ли это смысл?

tovernaar123 23.11.2022 13:56

Спасибо за ответ. Что касается 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» в тот же лист. Правильно ли я понимаю?

Tanaike 25.11.2022 01:53

Угадав вашу цель, я предложил в качестве ответа 3 примера скриптов. Не могли бы вы подтвердить это? Если они не были полезны, я извиняюсь.

Tanaike 25.11.2022 02:49
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
4
100
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В вашей ситуации, как насчет следующей примерной ситуации и сценариев?

Образец электронной таблицы выглядит следующим образом.

В следующих примерах сценариев эта электронная таблица используется в качестве образца.

Создать новую диаграмму.

Образец 1

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);
}

В этом скрипте создается следующая диаграмма.

Образец 2

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);
}

В этом скрипте создается следующая диаграмма.

Обновите график.

Образец 3

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());
}
  • При запуске этого скрипта существующая диаграмма обновляется. Диапазоны осей x и y заменяются на y и x соответственно.

Примечание:

  • В этих примерах скриптов, чтобы объяснить ход скрипта, предполагается, что для диаграммы есть только 2 столбца. Пожалуйста, будьте осторожны с этим.

Использованная литература:

именно то, что мне нужно, я не понимал, что могу добавить диапазон более одного раза, тысм.

tovernaar123 26.11.2022 18:01

@ tovernaar123 Спасибо за ответ. Я рад, что ваша проблема была решена. И тебе спасибо.

Tanaike 27.11.2022 00:56

Другие вопросы по теме