2016-04-16 8 views
2

私はすばらしいライブラリdc.jsとcrossfilter.jsを学習しており、ジオクロールマップを使って例を作っています。dc.js reductioヘルパー関数、オブジェクト形式の出力を得る方法

私はいくつかのデータを入力し、マップに特定の国を描画したいが、国は表示されません。これははるかに大きな例の一部であり、私は問題を抱えている部分だけを提出しようとしています。 ​​

(私はうまくいけば)データと私のcrossfilterの出力を見ることができますcdnを取得することに問題があった)でjfiddleを投稿しました。すべてがconsole.log出力に行きます。

最初はデータをネストされた配列に入れていましたが、「平坦化」データが必要なcfについて読むので、フラット化されたデータの2つのサブセットの例countries1とcountries2を追加します。私はcountries2を使いたい。

私はreductioヘルパーライブラリを使ってみましたが、(naydimgroup)はキー "nid"と値のある国の配列から出力するようにしました。私は、reductio githubページのReadme.mdの例を使用してこれを行いました。私は何をしようとしているのかわからなかった。

私はこの部分で助けが必要です。どのようにn1dimgroupの出力がこのようなキー、値を持つオブジェクトであるように、減速器を書き直すのですか?

{ key: Benin, value: 1} 
{ key: Nepal, value: 2} 
... 

など?

ご協力いただき誠にありがとうございます。ありがとうございました。 私は以下のコードを短縮しましたが、データはjfiddleにあります。

<script> 
//please see var countries2 on the jfiddle 

var countries = [ 
    "key":"Albania", 
    "value":2, 
    "key":"Jamaica", 
    "value":1, 
    "key":"Senegal", 
    "value":3, 
    "key":"Morocco", 
    "value":2, 
    "nid":"0", 
    }, 
    { 
     "key":"Fiji", 
     "value":1, 
     "key":"Mongolia", 
     "value":1, 
     "key":"Uganda", 
     "value":1, 
     "nid":"36", 
     } 
    var n1 = crossfilter(countries2); 
    var n1dim = n1.dimension(function(d) { return d.nid}); 
    var n1dimgroup = n1dim.group(); 
     console.log("n1dim",n1dim.top(Infinity)); 
     console.log("n1dimgroup",n1dimgroup.top(Infinity)); 

var reducer = reductio() 
    .exception(function(d) { return d.key; }) 
    .exceptionCount(true) 
    .exceptionSum(function(d) { return d.value; }); 
reducer(n1dimgroup); 

console.log('reducer', reducer); 
console.log('n1dimgrouptop after reductio', n1dimgroup.top(Infinity)); 
console.log('n1dimgrouptop.key', n1dimgroup.top(Infinity).key); 
console.log('n1dimgrouptop.value', n1dimgroup.top(Infinity).value); 
</script> 
以下のコード

どのように私は減速がキー、オブジェクトの値の形式で出力を提供するのですか?

+0

なぜあなたはこれを行う必要があるのですか?私はそのグループがデフォルトでdc.jsと一緒に働くように思っていますが、その場合は、dc.jsグループのkeyAccessorとvalueAccessorオプションを調べて、キー/値以外の形式のオブジェクトフォーマット。 –

+0

ところで、上記のJSFiddleは依存関係が読み込まれず、いくつかのタイプミスがあるため私のために壊れています。ここには動作するバージョンがあります:https://jsfiddle.net/mh0n7tx0/4/ –

+0

あなたの応答、Ethanに感謝します。私はgeochoroplethでjsonがd.properties.nameでフィードを取得するので、コンソールにオブジェクト形式で表示されます。 1つの国と1つのキーと値を持つ描画データを正常に与えることができますが、複数のキーと値を持つグループからデータを送信するときには、それらを描画しません。私はjsfiddleにもっと良い例をつけようとします。私はキーとアクセサの値との多くの組み合わせを試みましたが、まだ成功していません。 – user2517542

答えて

1

Ethanの例では、 の後にアクセサー関数を使用する方法を教えてくれました。これは私の質問に答えました。ありがとう!

関連する問題