所以我正在玩d3.js和nvd3。我试图使用nvd3和d3制作一个平行坐标图,可以拖动/重新排序不同的轴。我只能使用d3制作可拖动的轴,但是,如果可能的话,我想使用nvd3来做到这一点,但据我所知,没有办法做到这一点。我正在使用angularjs指令来实现这一点。此代码创建图表:
// Extract the dimensions and crate a scale for each dimension.
var data = [];
var tmpArray = [];
for (var i = 0; i < newVal.AnalysisIn.length; i++) {
data.push(newVal.AnalysisIn[i]);
tmpArray.push(newVal.AnalysisOut[i]);
}
for (var j = 0; j < data.length; j++) {
for (var k = 0; k < tmpArray.length; k++) {
angular.extend(data[j], tmpArray[j]);
}
}
// Set dimensions of each axis
dimensions = d3.keys(data[0]).filter(function (d) {
return d !== 'name' && (y[d] = d3.scale.linear()
.domain(d3.extent(data, function (p) {
return +p[d];
}))
.range([height, 0]));
});
console.log(dimensions);
nv.addGraph(function () {
var chart = nv.models.parallelCoordinates()
.margin(margin)
.height(height)
.width(width)
.dimensions(dimensions);
svg.datum(data)
.call(chart);
return chart;
});
除非我无法对轴进行拖动/重新排序,否则我可以找到一种方法来执行此操作,如下例所示:http://bl.ocks.org/jasondavies/1341281
任何人都知道如何做到这一点?非常感谢任何帮助!
// Rhanox
答案 0 :(得分:0)
我最终使用了Syntagmatic(https://syntagmatic.github.io/parallel-coordinates/)的parcoords角度库。这就像一个魅力,比nvd3平行坐标图(在我看来)更容易使用。