Friday 15 March 2013

crossfilter - Reduce function in dc.js -



crossfilter - Reduce function in dc.js -

i new dc.js library , wanted crossfilter calculation below on grouping method of geochoropleth chart. pretty sure there function pass reduce method of group.

i have next info in data.csv (the first row contains column names):

budget,gid,mdis,uspro,type,fileurl,rvid,verdate,verstat,score 10428,ali-g-006,aliabad,kunduz,hard,/uploadedfiles/reports/sika north/136-sika-north-ali-g-006.pdf,0,19-08-2014,2,0 24853,ali-g-008,aliabad,kunduz,hard,/uploadedfiles/reports/sika north/561-sika-north-ali-g-008.pdf,0,19-08-2014,0 24831,ali-g-019,aliabad,kunduz,hard,/uploadedfiles/reports/sika north/987-sika-north-ali-g-019.pdf,0,18-08-2014,2,0 24771,ima-g-017,imam sahib,kunduz,hard,/uploadedfiles/reports/sika north/557-sika-north- ima-g-017.pdf,0,28-08-2014,2,1 21818,ima-g-019,imam sahib,kunduz,hard,/uploadedfiles/reports/sika north/992-sika-north-ima-g-019.pdf,0,27-08-2014,2,0 12266,kha-g-007,khanabad,kunduz,hard,/uploadedfiles/reports/sika north/583-sika-north - kha-g-007.pdf,0,7/9/2014,1,0 23148,kun-g-002,kunduz,kunduz,hard,/uploadedfiles/reports/sika north/909-sika-north - kun-g-002.pdf,0,1/9/2014,2,0 54584,kun-g-004,kunduz,kunduz,hard,/uploadedfiles/reports/sika north/702-sika-north - kun-g-004 20140709.pdf,0,9/7/2014,1,0 24544,pul-g-001,pul-e khumri,baghlan,hard,/uploadedfiles/reports/sika north/599-sika-north - pul-g-001 - 20140623.pdf,0,6/7/2014,2,1 40149,sskdag046,arghandab (1),kandahar,hard,/uploadedfiles/reports/sika south/239-sika-south-sskdag046.pdf,0,12/9/2014,0,0.625 39452,0003 lgr mag,muhammad aghah,logar,hard,/uploadedfiles/reports/sika east/792-sika-east - 0003 lgr mag - 20140610.pdf,0,10/6/2014,2,0.7 58298,0013 lgr mag,muhammad aghah,logar,hard,/uploadedfiles/reports/sika east/591-sika-east - 0013 lgr mag 20140601.pdf,0,1/6/2014,2,0]

below dimension , grouping chart:

class="lang-js prettyprint-override">var facts = crossfilter(data); var scoref = facts.dimension(function (d) { homecoming d.district;}); var scoreg = scoref.group().reducesum(function(d){return d.score;});

the d.score field's value calculated using code below php:

class="lang-php prettyprint-override">$tempsql = $dbase->query('select "vermdis", count(*) total, sum("verstat") sam mt_fver grouping "vermdis"'); while ($r = pg_fetch_array($tempsql)) { $dist = $r['vermdis']; $score = $r[2] / (2 * $r[1]); $disxx[$dist] = $score; }

what accomplish same calculation using group().reduce(function (p,v) { /* ... */ }) dc.js library while grouping values district names.

what results/errors getting? looks pretty much right idea, take account:

if you're using d3.csv(), homecoming values strings, you'll need either preprocess data, or utilize +d.score convert values while reading them the field may come out d.score depending how reading csv in. you may need adapt cut down function suit calculation

if set line break in function pass reduce, can set breakpoint there using browser's debugger , experiment on console figure out look works need.

dc.js crossfilter

No comments:

Post a Comment