Javascript 按月份名称对谷歌图表中的X轴进行排序
我想使用谷歌图表在X轴上对月份名称进行排序。我目前使用的是Javascript 按月份名称对谷歌图表中的X轴进行排序,javascript,html,charts,google-visualization,react-google-charts,Javascript,Html,Charts,Google Visualization,React Google Charts,我想使用谷歌图表在X轴上对月份名称进行排序。我目前使用的是dataGroup.sort([{column:0}])按字母顺序排序。如何按月对值进行w.r.t排序 数据组现在有如下数据- gvjs_K {Sp: null, cf: Array(3), Vf: Array(34), qr: null, cache: Array(0), …} Sp: null Vf: Array(34) 0: c: Array(3) 0: {v: "August"} 1: {v: &qu
dataGroup.sort([{column:0}])代码>按字母顺序排序。如何按月对值进行w.r.t排序
数据组现在有如下数据-
gvjs_K {Sp: null, cf: Array(3), Vf: Array(34), qr: null, cache: Array(0), …}
Sp: null
Vf: Array(34)
0:
c: Array(3)
0: {v: "August"}
1: {v: "Adult Player"}
2: {v: 13307}
length: 3
__proto__: Array(0)
__proto__: Object
1:
c: Array(3)
0: {v: "August"}
1: {v: "Coach"}
2: {v: 4062}
length: 3
__proto__: Array(0)
__proto__: Object
2: {c: Array(3)}
3: {c: Array(3)}
您可以使用DataView
类和setRows
方法设置自定义排序顺序。
setRows
方法的工作原理是按行的显示顺序提供行索引数组
在本例中,我们使用月份名称数组来确定正确的顺序。
然后我们对行索引进行相应的排序,并使用setRows
构建数据表
1。以正确的顺序创建月份名称数组
var monthOrder = [
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
];
2。使用getSortedRows
方法从数据表中获取行索引数组
var rows = data.getSortedRows([{column: 0}]);
3。使用月名数组中的名称索引对行索引数组进行排序
rows.sort(function (a, b) {
var monthA = data.getValue(a, 0);
var monthB = data.getValue(b, 0);
return monthOrder.indexOf(monthA) - monthOrder.indexOf(monthB);
});
4.创建一个数据视图,并使用setRows
方法设置自定义排序
var view = new google.visualization.DataView(data);
view.setRows(rows);
然后使用数据视图绘制图表
请参阅以下工作片段
google.charts.load('current'{
包:['controls','corechart']
}).然后(函数(){
var data=google.visualization.arrayToDataTable([
['April',2000.91215.3],
[August',300.52512],
['December',600.37518.6],
2月,2500.48852.7,
['一月',1453.55005.7],
[June',4300.59635.7],
['July',2588.47418.7],
[March',3588.51221],
[May',1666.38518.6],
[11月2446.36218.6],
[10月,8556.34218.6],
[九月,1222.91415.3]
],对);
var chartRaw=new google.visualization.ColumnChart(document.getElementById('chart\u div\u raw');
绘制图表(数据);
//按月份名称按时间顺序对行排序
var monthOrder=[
“一月”,
“二月”,
“三月”,
"四月",,
“五月”,
“六月”,
“七月”,
“八月”,
"九月",,
“十月”,
"十一月",,
“十二月”
];
var rows=data.getSortedRows([{column:0}]);
行排序(函数(a,b){
var monthA=data.getValue(a,0);
var monthB=data.getValue(b,0);
返回monthOrder.indexOf(monthA)-monthOrder.indexOf(monthB);
});
var view=newgoogle.visualization.DataView(数据);
view.setRows(行);
var chartSort=new google.visualization.ColumnChart(document.getElementById('chart\u div\u sort');
chartSort.draw(视图);
});代码>
未分类
分类
您能在这里发布您的数据样本(JSON)吗?以及任何相关的代码…更新@WhiteHat我使用的数据组和图表参考来自您以前在不同帖子中的答案。:)希望这能帮上忙…很有魅力。它一开始没有注意到“二月”的拼写:P.谢谢@WhiteHat
var view = new google.visualization.DataView(data);
view.setRows(rows);