在 Google 饼图中显示不同的后缀

Show different suffix in Google Piechart

我有一个饼图显示 总带宽 的结果 uplink/downlink

现在,它们的后缀是 GB。

我努力尝试显示不同的后缀。 例如,


我有

<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>

有人可以对此有所说明。

对此有任何提示/建议将不胜感激!

一种方法就是自己动手:(Correct way to convert size in bytes to KB, MB, GB in 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 是 "real" 值 google 用于绘制,f 是它将显示的格式化值

如果您想保留 google 格式化程序,另一种方法是在 formatter.format(data, 1);

之后添加此行
data.setFormattedValue(1,1,data.getFormattedValue(1,1).replace("GB","KB"))

设置第 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}}')

有关 setFormattedValuegetFormattedValue 的更多信息,请查看

Google Datatable Documentation