JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://rawgit.com/mbostock/d3/master/d3.js"></script>
<script src="https://rawgit.com/mtraynham/crossfilter/master/crossfilter.js"></script>
<link rel="stylesheet" href="https://rawgit.com/dc-js/dc.js/master/dc.css">
<script src="https://rawgit.com/dc-js/dc.js/master/dc.js"></script>
<div id="stacked_barchart"></div>
<div id="test2"></div>
JavaScript
var data =
[
{
yearsOfExp : 1,
Courses_taken: [
{
Language : " SAP BI 7.0",
spent : 5.0
},
{
spent : 5.5,
Language : " SAP ECC 6.0"
}
]
},
{
yearsOfExp : 2.5,
Courses_taken: [
{
Language : " SAP ECC 6.0",
spent : 2.7
},
{
Language : "ECC6.0",
spent : 2
},
{
Language : "ECC6.0.1",
spent : 1.4
}
]
},
{
yearsOfExp : 3,
_id : 1
}
];
var ndx = crossfilter(data);
var yearDim = ndx.dimension(function(d)
{
return d.yearsOfExp;
});
var yeargroup = yearDim.group();
var stacked_dimesnion = ndx.dimension(function(d)
{
if(d.Courses_taken!= undefined)
{
if(d.Courses_taken.length>0 )
{
var sample_array = [];
for (var i=0; i < d.Courses_taken.length; i++) {
sample_array.push( d.Courses_taken[i].Language);
}
return sample_array;
}
}
});
function reduceAdd(p, v) {
if(v.Courses_taken!= undefined)
{
if(v.Courses_taken.length!=0 )
{
for (var i=0; i < v.Courses_taken.length; i++) {
if(v.Courses_taken[i].spent <= 3 )
{
p[v.Courses_taken[i].Language] = (p[v.Courses_taken[i].Language] || 0) + 1; //increment counts
}
}
}
}
return p;
}
function reduceRemove(p, v) {
if(v.Courses_taken!= undefined)
{
if(v.Courses_taken.length!=0 )
{
for (var i=0; i < v.Courses_taken.length; i++) {
if(v.Courses_taken[i].spent <= 3 )
{
p[v.Courses_taken[i].Language] = (p[v.Courses_taken[i].Language] || 0) - 1; //increment counts
}
}
}
}
return p;
}
function reduceInitial() {
return {};
}
var lt2_group = stacked_dimesnion.groupAll().reduce(reduceAdd, reduceRemove, reduceInitial).value();
lt2_group.all = function() {
var newObject1 = [];
for (var key in this) {
if (this.hasOwnProperty(key) && key != "all")...