Angularjs 带堆叠选项的nvd3多条形图条形图未正确显示
我正在尝试使用nvD3多条形图来表示x刻度上的字符串类型数据。组条形图显示正确。但是,堆叠条形图显示不正确。相反,一个酒吧出现在另一个酒吧的顶部,他们被搞混了(例如,我的扑克牌中的地面)。谁能帮我一下哪里出了错 请找到我的宝物 我的数据如下: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
[{
"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中找到了解决排序问题的解决方案,我将其作为答案发布。