Можно ли конвертировать Chart в и EmbeddedChart? - PullRequest
1 голос
/ 11 мая 2019

Я пытаюсь создать несколько диаграмм из листа данных, но диаграммы собирают определенные данные, поэтому я счел целесообразным использовать класс DataTableBuilder.Я могу указать метки для данных легче, чем на исходном листе.Тем не менее, я не могу встроить класс диаграммы в лист.Можно ли либо преобразовать диаграмму в EmbeddedChart, либо использовать DataTable для создания EmbeddedChart? Я пытаюсь создать несколько диаграмм из листа данных, но диаграммы собирают определенные данные, поэтому я нашел ихвыгодно использовать класс DataTableBuilder.Я могу указать метки для данных легче, чем на исходном листе.Тем не менее, я не могу встроить класс диаграммы в лист.Можно ли преобразовать диаграмму в EmbeddedChart или использовать DataTable для создания EmbeddedChart?

Это данные ниже, и мне нужен только последний столбец (5/11), и мне не нужнообщий ряд.Так что это не лаконичный диапазон, иначе я бы просто использовал встроенный построитель диаграмм.

    May          5/1    5/2 5/3 5/11    
    Critical       0    0   0   0   
    High           0    0   0   0   
    Call Immediate  4   11  4   3   
    Daytime Call    3   3   6   1   
    Totals         7    14  10  4   

Ниже показано, как я построил график, в котором dailyTotals имеет диапазон [0, 0, 3, 1].Это отлично работает, но я ничего не могу обозначить.

      var dailyChart = LOB.newChart()
        .setChartType(Charts.ChartType.BAR)
        .setOption('title', LOB.getName())
        .addRange(dailyTotals)
        .build();
      LOB.insertChart(dailyChart);

Ниже строится DataTable, на этот раз ежедневные итоги являются просто массивом.Но это дает мне ярлыки.

    dailyTable = Charts.newDataTable()
     .addColumn(Charts.ColumnType.STRING, "Priority")
     .addColumn(Charts.ColumnType.NUMBER, "Incidents")
     .addRow('P1', dailyTotals[0])
     .addRow('P2', dailyTotals[1])
     .addRow('P3', dailyTotals[2])
     .addRow('P4', dailyTotals[3])
    .build();

Как я могу использовать DataTable для создания EmbeddedChart?или как я могу превратить диаграмму во встроенную диаграмму?

Ответы [ 2 ]

1 голос
/ 18 мая 2019

Я действительно нашел решение, которое сработало для меня, прежде чем я получил ответ от кого-либо.Он включает в себя использование легенды, чтобы определить, какая полоса, а не метки вдоль оси X, но это полностью покрывает мои требования и может помочь кому-то еще.

  var dailySeries =  {
   0:{color: 'blue', labelInLegend: 'P1'},
   1:{color: 'red', labelInLegend: 'P2'},
   2:{color: 'yellow', labelInLegend: 'P3'},
   3:{color: 'green', labelInLegend: 'P4'}
  }  
  var dailyChart = LOB.newChart()
   .setPosition(8, 27, 0, 0)
   .setChartType(Charts.ChartType.BAR)
   .asColumnChart()
   .setOption('title', LOB.getName())
   .addRange(dailyTotals.getCell(1, 1))
   .addRange(dailyTotals.getCell(2, 1))
   .addRange(dailyTotals.getCell(3, 1))
   .addRange(dailyTotals.getCell(4, 1))
   .setOption('series', dailySeries)
   .build();
 LOB.insertChart(dailyChart);
1 голос
/ 12 мая 2019

Вам потребуется заново создать указанный ниже диапазон где-нибудь еще на листе и вместо этого добавить его в качестве диапазона.

A  B
P1 0   
P2 0   
P3 3   
P4 1   

Диапазон [P1, P2, P3, P4] также может быть где-то еще. Затем вы можете добавить оба диапазона:

.addRange([P1 to P4 range])
.addRange(dailyTotals)
.setOption('useFirstColumnAsDomain','true')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...