2017-02-15 46 views
0

基本的な棒グラフの作成を予定しているCSVファイルから2つの列を取得するのに苦労しました。私は棒グラフを作成するために使用する1つの配列内に2つの配列(各列に1つずつ)を取得する予定でした。 D3を使い始めることができます。D3 CSVファイルにロードしてから特定の列のみを使用する

現在、データをロードすると、オブジェクトの配列が取得され、キーと値のペアの2つの列が取得されます。私の目標を達成するために

d3 - load two specific columns from csv file

しかし、どのように、私は選択を使用して(と入力します):私はこれと同様の質問を参照してください...

私の考えが正しいかわからないんだけど?

+1

をなぜあなたは単に各プロパティをマッピングしませんか? –

+2

あなたはこれまでに試したことのいくつかのコードを共有できますか?データ構造をd3に送る前にデータ構造を操作することができます – Nobita

答えて

3

大きなCSVの2列だけを読み込むことはできませんが、全体を読み込んで、必要な列を抽出することができます。

あなたのcsvファイルは次のようであると言う:

col1,col2,col3,col4 
aaa1,aaa2,aaa3,aaa4 
bbb1,bbb2,bbb3,bbb4 
ccc1,ccc2,ccc3,ccc4 

そして、あなたが唯一のcol2col3をしたい(そして、あなたは、単に他の列を残したくない場合は、

csv('my.csv', function(err, data) { 
    console.log(data) 
    /* 
    output: 
    [ 
     { col1:'aaa1', col2:'aaa2', col3:'aaa3', col4:'aaa4' }, 
     { col1:'bbb1', col2:'bbb2', col3:'bbb3', col4:'bbb4' }, 
     { col1:'ccc1', col2:'ccc2', col3:'ccc3', col4:'ccc4' } 
    ] 
    */ 
}) 

でそれを読み込みますそのデータは問題ではないはずです)、これを行うことができます:

var cols2and3 = data.map(function(d) { 
    return { 
    col2: d.col2 
    col3: d.col3 
    } 
}); 

console.log(cols2and3) 
/* 
    output: 
    [ 
    { col2:'aaa2', col3:'aaa3' }, 
    { col2:'bbb2', col3:'bbb3' }, 
    { col2:'ccc2', col3:'ccc3' } 
    ] 
*/ 

I.上記のコードは、オブジェクトごとに2つの小道具だけを持つオブジェクトの新しい配列を生成しました。

あなたが列ごとの値のちょうど配列たい場合は - ではないオブジェクトの両方カラムの値を持つ - ことができます:

var col2data = data.map(function(d) { return d.col2 } 
var col3data = data.map(function(d) { return d.col3 } 

console.log(col2) // outputs: ['aaa2', 'bbb2', 'ccc2'] 
関連する問題