私はすばらしいライブラリ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>
以下のコード
どのように私は減速がキー、オブジェクトの値の形式で出力を提供するのですか?
なぜあなたはこれを行う必要があるのですか?私はそのグループがデフォルトでdc.jsと一緒に働くように思っていますが、その場合は、dc.jsグループのkeyAccessorとvalueAccessorオプションを調べて、キー/値以外の形式のオブジェクトフォーマット。 –
ところで、上記のJSFiddleは依存関係が読み込まれず、いくつかのタイプミスがあるため私のために壊れています。ここには動作するバージョンがあります:https://jsfiddle.net/mh0n7tx0/4/ –
あなたの応答、Ethanに感謝します。私はgeochoroplethでjsonがd.properties.nameでフィードを取得するので、コンソールにオブジェクト形式で表示されます。 1つの国と1つのキーと値を持つ描画データを正常に与えることができますが、複数のキーと値を持つグループからデータを送信するときには、それらを描画しません。私はjsfiddleにもっと良い例をつけようとします。私はキーとアクセサの値との多くの組み合わせを試みましたが、まだ成功していません。 – user2517542