Javascript nvd3图表上的排序栏
在Nvd3discreteBarChart或水平条形图上,是否有简单的方法对条形图进行排序(升序或降序)。 我认为应该在主库(Nvd3)中添加一个函数,以便按如下方式使用该选项:Javascript nvd3图表上的排序栏,javascript,d3.js,nvd3.js,Javascript,D3.js,Nvd3.js,在Nvd3discreteBarChart或水平条形图上,是否有简单的方法对条形图进行排序(升序或降序)。 我认为应该在主库(Nvd3)中添加一个函数,以便按如下方式使用该选项: .sortAscending(true)//用于根据条形图的值进行升序 或 .sortDescending(true)//用于根据其值降序条尝试此操作,我在应用程序中实现了此操作,在返回图表对象之前将其包含在addGraph方法中 var parent = $('svg').parent().attr("id");
.sortAscending(true)//用于根据条形图的值进行升序
或
.sortDescending(true)//用于根据其值降序条
尝试此操作,我在应用程序中实现了此操作,在返回图表对象之前将其包含在addGraph方法中
var parent = $('svg').parent().attr("id");
//在DIV中添加一个按钮,并提供onclick-evet函数
d3.select("#"+parent).append('a').attr('href',"javascript:void(0)")
.text('Sort').on("click", sortBars).html('Sort');
var sortOrder;
var sortBars = function(){
if( !sortOrder || sortOrder == null)
sortOrder = true;
else sortOrder = false;
var historicalBarChart11 ;
var data1 = JSON.parse(JSON.stringify(data));//cloning object
sortdata = data1[0].values;
sortdata.sort(function(a,b){
if(sortOrder)
return a["value"]-b["value"];//[1];
else
return b.value-a.value;//[1];
});
for(var i=0;i<sortdata.length;i++){
data1[0]["values"][i] = sortdata[i];
}
d3.select('svg').datum(data1).transition().duration(500).call(chart);
}
//排序功能
d3.select("#"+parent).append('a').attr('href',"javascript:void(0)")
.text('Sort').on("click", sortBars).html('Sort');
var sortOrder;
var sortBars = function(){
if( !sortOrder || sortOrder == null)
sortOrder = true;
else sortOrder = false;
var historicalBarChart11 ;
var data1 = JSON.parse(JSON.stringify(data));//cloning object
sortdata = data1[0].values;
sortdata.sort(function(a,b){
if(sortOrder)
return a["value"]-b["value"];//[1];
else
return b.value-a.value;//[1];
});
for(var i=0;i<sortdata.length;i++){
data1[0]["values"][i] = sortdata[i];
}
d3.select('svg').datum(data1).transition().duration(500).call(chart);
}
var排序器;
var sortBars=函数(){
如果(!sortOrder | | sortOrder==null)
sortOrder=true;
else-sortOrder=false;
var historicalBarChart11;
var data1=JSON.parse(JSON.stringify(data));//克隆对象
sortdata=data1[0]。值;
sortdata.sort(函数(a,b){
如果(排序器)
返回a[“value”]-b[“value”];/[1];
其他的
返回b.value-a.value;//[1];
});
对于(var i=0;iNOTE)有一个小错误:在排序中:if(sortOrder)返回a[“value”]-b[“value”];//[1];否则返回b[“value”]-a[“value”];//[1];我刚才回答了这个问题: