0

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

现在,它们的后缀是GB。

在此处输入图像描述

我努力尝试以不同的方式显示它们的后缀。例子,

  • 下行链路GB
  • 中的上行链路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>

我可以有人可以对此有所了解。

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

4

1 回答 1

1

一种方法是自己做:(在 Javascript 中将字节大小转换为 KB、MB、GB 的正确方法可能会有所帮助)

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

请注意,v 是谷歌用来绘制的“真实”值,f 是它将显示的格式化值

如果你想保留你的谷歌格式化程序,另一种方法是在你的后面添加这一行formatter.format(data, 1);

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

设置第 1 行第 1 列的 formattedValue

更新考虑到您想同时使用两者:

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

谷歌数据表文档

于 2015-12-23T17:47:09.260 回答