在Highcharts中为每个X轴排序系列数据

4
我需要对每个系列的数据进行从大到小的排序。 示例代码
    series: [{
        name: 'John',
        data: [{
            y: 1}, {y: 2}, {y: 3}, {y: 4}, {y: 5
        }]
    }, {
        name: 'Jane',
        data: [{
            y: 5}, {y: 4}, {y: 3}, {y: 2}, {y: 1
        }]
    }, {
        name: 'Joe',
        data: [{
            y: 5}, {y: 2}, {y: 3}, {y: 4}, {y: 1
        }]
    }]
1个回答

4
您可以使用 sort 函数。它可以这样应用:
series.forEach(function(name){
  name.data.sort(function (a,b) {
    if(a.y < b.y) {
      return 1;
    } else if (a.y > b.y) {
      return -1;
    }
    return 0;
  });
});

为了使代码更易读,你可以创建一个series变量,并在调用highcharts函数之前对其进行排序。这在这里演示。

尝试了这个,但它不起作用。请参考这个fiddle:http://jsfiddle.net/1uu7edpw/5/。不知道如何引用系列。 - Babu
这会对整个系列进行排序,导致将值错误地分配给类别。例如,“Jane”和“Joe”的苹果类别的值为5和5。但是在排序后,它们被分配到值0。 - Babu
我的期望是,在 http://jsfiddle.net/1uu7edpw/2/ 中,香蕉类别应该显示为 {John:5, Joe:1, Jane: 1},而不是当前的格式 {Joe:1, Jane:1, John:5}。 - Babu
1
这并不完全符合您原始问题的描述。您更想要对显示在每个条形图中的数据进行排序。我查看了Highcharts API,没有找到解决您问题的简单方法。我认为您应该创建另一个问题,以解释您实际想要实现的内容。 - LiquidLemon
好的。谢谢回复。 - Babu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接