2017-05-04 8 views
0

私はしばらく試していましたが、検索する必要のあるキーワードが不明です。とにかく、d3のデータの読み込み方法を変更することに興味があり、プロットの列を並べ替えることができます。 Rの観点から見ると、棒グラフの列を並べ替えることができるように因子レベルを変更することと同等であると考えています。d3.jsプロット用のデータ列を並べ替える

たとえば、以下のブロックへのリンクでは、パラレル座標の順序を手動で設定する必要があります。現在、左から右に向かって、経済、シリンダーを示しています。私はあなたがExcelのスプレッドシートにcsvファイル(すなわちcars.csv)と編集を取ることができ、これを実現するために

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

+0

列を手動でドラッグできますか? – TheBiro

+0

はい、私は、左端に年があるなど、特定の場所に特定のプリセットを置いて、ユーザーが望むように変更できるようにしています。 – dchen71

答えて

3

このスニペットでは、列の順序は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/4f1798a5e658df7986f70effa030497c

0

など、今年のような何かをしたい、体重、変位。ここで、列を希望通りに転置してd3js関数にコピーすることができます。 (エクセルで完了)以下の例を見てください:

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

AMC大使ブロアム、73,3821,360,13,8,175,11 AMC大使DPL、70,3850,390,15,8,190,8.5 AMC大使SST、72,3672,304,17,8,150,11.5 AMCコンコードDL6,79,3265,232,20.2,6,90,18.2

その他...私はそれが伸びたがっていないあまりにも多く...