是否可以在Google Charts中格式化图例?

时间:2017-07-31 15:30:57

标签: javascript charts google-visualization

我有一个使用数据行值的预定义图例。数据行值无法更改,因此我必须格式化图例值。例如,我需要将图例[A,S,T,V]转换为[AT& T,Sprint,T-Mobile,Verizon]有没有办法做到这一点?我知道我们可以重新格式化刻度,但有没有办法重新格式化图例?

以下是我的数据示例:

  

[ID,承运人A,承运人B,承运人,金额],

     

[1,S,V,A,36],

     

[2,V,A,S,15],

     

[3,A,V,T,22],

     

[4,S,A,V,48]

数据采用气泡图格式。

1 个答案:

答案 0 :(得分:1)

您可以使用带有计算列的DataView
将值转换为相应的名称

使用DataView方法setColumns

请参阅以下工作代码段...



google.charts.load('current', {
  callback: drawChart,
  packages:['table']
});

function drawChart() {
  var data = google.visualization.arrayToDataTable([
    ['ID', 'Carrier A', 'Carrier B', 'Carrier C', 'Amount'],
    [1, 'S', 'V', 'A', 36],
    [2, 'V', 'A', 'S', 15],
    [3, 'A', 'V', 'T', 22],
    [4, 'S', 'A', 'V', 48]
  ]);

  var dataView = new google.visualization.DataView(data);
  dataView.setColumns([0, {
    calc: function (dt, row) {
      return getCarrierName(dt.getValue(row, 1));
    },
    type: 'string',
    label: data.getColumnLabel(1)
  }, {
    calc: function (dt, row) {
      return getCarrierName(dt.getValue(row, 2));
    },
    type: 'string',
    label: data.getColumnLabel(2)
  }, {
    calc: function (dt, row) {
      return getCarrierName(dt.getValue(row, 3));
    },
    type: 'string',
    label: data.getColumnLabel(3)
  }, 4]);

  function getCarrierName(abbr) {
    var name;

    switch (abbr) {
      case 'A':
        name = 'AT&T';
        break;

      case 'S':
        name = 'Sprint';
        break;

      case 'T':
        name = 'T-Mobile';
        break;

      case 'V':
        name = 'Verizon';
        break;

      default:
        name = '';
    }

    return name;
  }

  var chart = new google.visualization.Table(document.getElementById('chart_div'));
  chart.draw(dataView);
}

<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="chart_div"></div>
&#13;
&#13;
&#13;