Показать другой суффикс в Google Piechart

У меня есть круговая диаграмма, показывающая результат общей пропускной способности uplink/downlink,

Прямо сейчас они имеют суффикс GB.

введите описание изображения здесь

Я изо всех сил пытаюсь отобразить их суффиксы разные. Пример,

  • Downlink в GB
  • Uplink in KB,

я имею

<script>

google.setOnLoadCallback(drawChart);
function drawChart() {

  console.log(color['downlink']);

  var data = google.visualization.arrayToDataTable([
    ['Task', 'Bandwith'],
    ['Downlink', ({{$t_down_bytes}})],
    ['Uplink', ({{$t_up_bytes}})]
  ]);

  var options = {
    legend: 'buttom',
    pieSliceText: 'value', // text | none
    title: 'Total Bandwith Usage',
    colors: [color['downlink'], color['uplink']],
    width:'100%',
    height: 400,
    slices: {
      1: {offset: 0.1}
    },

  };

  var formatter = new google.visualization.NumberFormat({
    fractionDigits:2,
    suffix: ' GB'
  });

  formatter.format(data, 1);

  var chart = new google.visualization.PieChart(document.getElementById('private'));
  chart.draw(data, options);
}

</script>

Я могу, кто-то может пролить свет на это.

Любые намеки / предложения по этому вопросу будут высоко оценены!

1 ответ

Решение

Один из способов - сделать это самостоятельно: может помочь правильный способ преобразования размера в байтах в КБ, МБ, ГБ в Javascript.

    var data = google.visualization.arrayToDataTable([
      ['Task', 'Bandwith'],
      ['Downlink', {v:6.4672328, f:"6.46 GB"}],
      ['Uplink', {v:9.40213213, f:"9.40 KB"}]
    ]);

Обратите внимание, что v - это "реальное" значение, которое Google использует для рисования, а f - это отформатированное значение, которое будет отображаться

Если вы хотите сохранить свой форматер Google, можно добавить эту строку после formatter.format(data, 1);

data.setFormattedValue(1,1,data.getFormattedValue(1,1).replace("GB","KB"))

Который устанавливает formattedValue строки 1, столбца 1

Обновление с учетом того, что вы хотите использовать сочетание обоих:

var data = google.visualization.arrayToDataTable([
  ['Task', 'Bandwith'],
  ['Downlink', $t_down_bytes],
  ['Uplink', $t_up_bytes],
 ]);

var formatter = new google.visualization.NumberFormat({
    fractionDigits:2
});

formatter.format(data, 1);

data.setFormattedValue(0,1,data.getFormattedValue(0,1) + ' {{$t_down_bytes_suffix}}')

data.setFormattedValue(1,1,data.getFormattedValue(1,1) + ' {{$t_up_bytes_suffix}}')

Для получения дополнительной информации о setFormattedValue а также getFormattedValue проверять

Документация Google Datatable

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