Javascript 按月份名称对谷歌图表中的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

我想使用谷歌图表在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: "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);