我有一个使用数据行值的预定义图例。数据行值无法更改,因此我必须格式化图例值。例如,我需要将图例[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]
数据采用气泡图格式。
答案 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;