Advertisement
Guest User

Untitled

a guest
Aug 31st, 2015
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*     Markers      */
  2.  
  3. d3.tsv("demo1.tsv", function(data) {
  4.   drawMarkerSelect(data);
  5.   drawMarkerArea(data);
  6. });
  7.  
  8. function drawMarkerSelect(data) {
  9.   var xf = crossfilter(data);
  10.   var groupname = "marker-select";
  11.     var facilities = xf.dimension(function(d) { return d.geo; });
  12.     var facilitiesGroup = facilities.group().reduceCount();
  13.  
  14.   dc.leafletMarkerChart("#demo1 .map",groupname)
  15.       .dimension(facilities)
  16.       .group(facilitiesGroup)
  17.       .width(600)
  18.         .height(400)
  19.       .center([42.69,25.42])
  20.       .zoom(7)
  21.       .renderPopup(true)
  22.       .popup(function(d, marker){
  23.         return d.key + " : " + d.value;
  24.       })
  25.       .cluster(true);  
  26.  
  27.     var types = xf.dimension(function(d) { return d.type; });
  28.     var typesGroup = types.group().reduceCount();
  29.  
  30.   dc.pieChart("#demo1 .pie",groupname)
  31.       .dimension(types)
  32.       .group(typesGroup)
  33.       .width(200)
  34.         .height(200)
  35.         .renderLabel(true)
  36.         .renderTitle(true)
  37.       .ordering(function (p) {
  38.         return -p.value;
  39.       });
  40.  
  41.     dc.renderAll(groupname);
  42. }
  43.  
  44. function drawMarkerArea(data) {
  45.   var xf = crossfilter(data);
  46.   var groupname = "marker-area";
  47.     var facilities = xf.dimension(function(d) { return d.geo; });
  48.     var facilitiesGroup = facilities.group().reduceCount();
  49.  
  50.   dc.leafletMarkerChart("#demo2 .map",groupname)
  51.       .dimension(facilities)
  52.       .group(facilitiesGroup)
  53.       .width(600)
  54.         .height(400)
  55.       .center([42.69,25.42])
  56.       .zoom(7)
  57.       .renderPopup(false)
  58.       .filterByArea(true);  
  59.  
  60.     var types = xf.dimension(function(d) { return d.type; });
  61.     var typesGroup = types.group().reduceCount();
  62.  
  63.   dc.pieChart("#demo2 .pie",groupname)
  64.       .dimension(types)
  65.       .group(typesGroup)
  66.       .width(200)
  67.         .height(200)
  68.         .renderLabel(true)
  69.         .renderTitle(true)
  70.       .ordering(function (p) {
  71.         return -p.value;
  72.       });
  73.  
  74.     dc.renderAll(groupname);
  75. }
  76.  
  77. var demo2_geojson=false;
  78. var demo2=false;
  79. d3.json("bulgaria.geojson", function(data) {
  80.   demo2_geojson=data;
  81.   if (demo2)
  82.     drawChoropleth(demo2,demo2_geojson);
  83. });
  84. d3.csv("demo2.csv", function(data) {
  85.   demo2=data;
  86.   if (demo2_geojson)
  87.     drawChoropleth(demo2,demo2_geojson);
  88. });
  89.  
  90. /*     Choropleth      */
  91.  
  92. function drawChoropleth(data,geojson) {
  93.   dataP = [];
  94.   data.filter(function(d) {
  95.     return d.code && d.code!='SOF46';
  96.   }).forEach(function(d) {
  97.     d.sum = 0;
  98.     for(var p in d)
  99.       if (p && p!="code" && p!="sum") {
  100.         dataP.push({'code':d.code,'type':p,'value':+d[p]});
  101.         d.sum+=+d[p];
  102.       }
  103.   });
  104.   delete data;
  105.  
  106.   var xf = crossfilter(dataP);
  107.   var groupname = "Choropleth";
  108.     var facilities = xf.dimension(function(d) { return d.code; });
  109.     var facilitiesGroup = facilities.group().reduceSum(function(d) { return d.value;});
  110.  
  111.   dc.leafletChoroplethChart("#demo3 .map",groupname)
  112.       .dimension(facilities)
  113.       .group(facilitiesGroup)
  114.       .width(600)
  115.         .height(400)
  116.       .center([42.69,25.42])
  117.       .zoom(7)
  118.       .geojson(geojson)
  119.       .colors(['#fff7f3', '#fde0dd', '#fcc5c0', '#fa9fb5', '#f768a1', '#dd3497', '#ae017e', '#7a0177', '#49006a'])
  120.       .colorDomain(function() {
  121.         return [dc.utils.groupMin(this.group(), this.valueAccessor()),
  122.          dc.utils.groupMax(this.group(), this.valueAccessor())];
  123.       })
  124.       .colorAccessor(function(d,i) {
  125.         return d.value;
  126.       })
  127.       .featureKeyAccessor(function(feature) {
  128.         return feature.properties.code;
  129.       })
  130.       .renderPopup(true)
  131.       .popup(function(d,feature) {
  132.         return feature.properties.nameEn+" : "+d.value;
  133.       });  
  134.  
  135.     var types = xf.dimension(function(d) { return d.type; });
  136.     var typesGroup = types.group().reduceSum(function(d) { return d.value;});
  137.  
  138.   dc.pieChart("#demo3 .pie",groupname)
  139.       .dimension(types)
  140.       .group(typesGroup)
  141.       .width(200)
  142.         .height(200)
  143.       .ordering(function (p) {
  144.         return +p.key.substr(6);
  145.       })
  146.         .renderLabel(false)
  147.         .renderTitle(true)
  148.       .title(function(d) {
  149.         var age = d.data.key.substr(6);
  150.         if (age.indexOf("p")==-1)
  151.           age="Between "+(+age-4)+"-"+age;
  152.         else
  153.           age="Over "+age.substr(0,2);
  154.         return age+" : "+d.value;
  155.       });
  156.  
  157.     dc.renderAll(groupname);
  158. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement