D3.js重新安排图的数据列



我已经尝试了一段时间,但是我不确定需要搜索哪些关键字。无论如何,我有兴趣更改D3中的数据加载方式,以便我可以在图中重新排列列。用r术语来说,我正在寻找的是等同于改变因子水平,以便能够在条图中重新排列列。

例如,在指向下面块的链接中,我想手动设置哪个并行坐标为。目前,它显示了从左到右的经济,气缸。我想做一年,体重,流离失所等。

https://bl.ocks.org/jasondavies/1341281

列的顺序由d3.keys(cars[0])在此片段中确定:

x.domain(dimensions = d3.keys(cars[0]).filter(function(d) {
    return d != "name" && (y[d] = d3.scale.linear()
        .domain(d3.extent(cars, function(p) {
            return +p[d];
        }))
        .range([height, 0]));
}));

例如,这是相同的代码,但使用...

d3.keys(cars[0]).sort()

...按字母顺序排序阵列:https://bl.ocks.org/anonymous/9fb7329fed0e2ea539bab5bc5a47a16c

所以,如果您想要特定的订单,则可以简单地传递所需的数组:

x.domain(dimensions = ["year", , "weight (lb)", "name", "displacement (cc)", "economy (mpg)", "cylinders", "power (hp)", "0-60 mph (s)"].filter(function(d) {
    return d != "name" && (y[d] = d3.scale.linear()
        .domain(d3.extent(cars, function(p) {
            return +p[d];
        }))
        .range([height, 0]));
}));

这是块:https://bl.ocks.org/anonymous/4f1798a5e658df7986f7986f70303030497c

为了实现这一目标,您可以获取CSV文件(即CARS.CSV(并在Excel电子表格中进行编辑。您可以根据需要将列转换,然后复制回D3J函数。查看下面的示例(使用Excel完成(:

name,year,weight (lb),displacement (cc),economy (mpg),cylinders,power (hp),0-60 mph (s)

AMC大使Brougham,73,3821,360,13,8,175,11AMC大使DPL,70,3850,390,15,8,8,190,8.5AMC大使SST,72,3672,304,17,8,150,11.5AMC Concord DL 6,79,3265,232,20.2,6,90,18.2

等...我不希望它扩展太多...

最新更新