Angularjs 带堆叠选项的nvd3多条形图条形图未正确显示

Angularjs 带堆叠选项的nvd3多条形图条形图未正确显示,angularjs,d3.js,nvd3.js,Angularjs,D3.js,Nvd3.js,我正在尝试使用nvD3多条形图来表示x刻度上的字符串类型数据。组条形图显示正确。但是,堆叠条形图显示不正确。相反,一个酒吧出现在另一个酒吧的顶部,他们被搞混了(例如,我的扑克牌中的地面)。谁能帮我一下哪里出了错 请找到我的宝物 我的数据如下: [{ "values" : [["2 Day", 103.89], ["NextDay", 107.41], ["Ground", 428.75]], "key" : "FedEx" }, { "values" : [["Groun

我正在尝试使用nvD3多条形图来表示x刻度上的字符串类型数据。组条形图显示正确。但是,堆叠条形图显示不正确。相反,一个酒吧出现在另一个酒吧的顶部,他们被搞混了(例如,我的扑克牌中的地面)。谁能帮我一下哪里出了错

请找到我的宝物

我的数据如下:

[{
    "values" : [["2 Day", 103.89], ["NextDay", 107.41], ["Ground", 428.75]],
    "key" : "FedEx"
}, {
    "values" : [["Ground", 117.8], ["NextDay", 0], ["2 Day", 0]],
    "key" : "UPS"
}]

联邦快递
UPS
的值必须与类别
2天、下一天和地面

当您进入图表时,如下所示:

$scope.data = [{
    "values" : [["2 Day", 103.89], ["NextDay", 107.41], ["Ground", 428.75]],
    "key" : "FedEx"
}, {
    "values" : [["2 Day", 0], ["NextDay", 0], ["Ground", 117.8]],
    "key" : "UPS"
}]

希望它有帮助

以下排序必须应用于数据模型,以解决外观问题

function strcmp(a, b) {
    return a > b ? 1 : a < b ? -1 : 0;
}

function natcmp(a, b) {
    var x = [], y = [];

    a[0].replace(/(\d+)|(\D+)/g, function($0, $1, $2) { x.push([$1 || 0, $2]) })
    b[0].replace(/(\d+)|(\D+)/g, function($0, $1, $2) { y.push([$1 || 0, $2]) })

    while(x.length && y.length) {
        var xx = x.shift();
        var yy = y.shift();
        var nn = (yy[0]-xx[0]) || strcmp(yy[1],xx[1]);
        if(nn) return nn;
    }

    if(x.length) return -1;
    if(y.length) return +1;

    return 0;
}


$scope.data = $scope.data.map(function(d){ d.values = d.values.sort(natcmp); return d; });
功能strcmp(a、b){
返回a>b1:a

Ref:

谢谢Shabeer90,但是否有任何方法可以按照这种方式对我的json数组进行排序?我的意思是,如果我以任何顺序给出一个json数组,在应用一些函数或其他东西之后,它应该按照您给出的正确顺序返回json数组。用java或javascript进行排序也很好。谢谢Shabeer,它解决了这个问题。此外,我已经在Angularjs中找到了解决排序问题的解决方案,我将其作为答案发布。