OXIESEC PANEL
- Current Dir:
/
/
home
/
cubot
/
docroot
/
showcase
/
js
/
D3
/
plugins
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
08/14/2022 11:05:22 AM
rwxr-xr-x
📄
Radar.js
8.86 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
bar.js
17.59 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
bullet.css
422 bytes
08/14/2022 11:05:19 AM
rw-r--r--
📄
bullet.js
10.65 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
calendar.js
16.63 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
calender.css
541 bytes
08/14/2022 11:05:20 AM
rw-r--r--
📄
combo.js
16.74 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
combo_2.js
17.91 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
combo_wip.js
16.61 KB
08/14/2022 11:05:18 AM
rw-r--r--
📄
commonFunc.js
25.28 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
customChart.js
577 bytes
08/14/2022 11:05:20 AM
rw-r--r--
📄
d3Charts.css
2.88 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
donut.js
5.67 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
filledAreaPercent.js
17.95 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
funnel.js
6.03 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
funnel.js_previous_o4aug17
5.86 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
gauged.js
15.3 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
groupbar.js
13.18 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
groupbar_23Aug2019.js
10.85 KB
08/14/2022 11:05:18 AM
rw-r--r--
📄
heatmap.js
9.77 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
html2canvas.min.js
161.47 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
makeJson.js
1.64 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
makeJsonmulti.js
3.75 KB
08/14/2022 11:05:18 AM
rw-r--r--
📄
multiLine.js
17.24 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
multipleDonut.js
5.29 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
pie.js
4.52 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
radar.js
6.49 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
saveSvgAsPng.js
14.62 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
stackedAreaDate.js
17.56 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
stackedAreaDate_bkup23Nov2020.js
17.56 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
stackedbar.js
10.72 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
stackedbar_bkup21Apr2020.js
10.72 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
stock.js
13.6 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
sun.js
7.59 KB
08/14/2022 11:05:20 AM
rw-r--r--
📄
sunburst.js
7.13 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
tableChart.js
11.54 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
tableChart_07Jan2020.js
6.7 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
tree.js
7.34 KB
08/14/2022 11:05:19 AM
rw-r--r--
📄
waterfall.js
9.17 KB
08/14/2022 11:05:21 AM
rw-r--r--
📄
zoomTree.js
7.59 KB
08/14/2022 11:05:19 AM
rw-r--r--
Editing: waterfall.js
Close
function drawWaterfallChart(Data, divId, Title, Width, Height, Ndim, Nmeas, MeasFormats,dispObj,toolTip){ var measNum = 1, margin = {top: 20, right: 48, bottom: Height/4, left: 65}, width, height, i=0; d3.select("#"+divId).html('<div class="myChart"><div class="svgLegend"></div><div class="tipsy"><div class="tipsy-arrow"></div><div class="tipsy-inner"></div></div></div>'); d3.selectAll(".tipsy").style("display", "none"); var json=makeJsonFromArrayNew(Data, Ndim, Nmeas, MeasFormats, dispObj); makeParentsJson(json); resolveComputeMeasure(json, dispObj.RD.General.Measures); applyShowHideMeasure(json, dispObj); Nmeas=json.measName.length; var svg = findSvgArea(Nmeas,dispObj,json, Width, Height, divId); height = svg[2] - margin.top-50; width = svg[3] - margin.left - 30; var x = d3.scale.ordinal() .rangeRoundBands([0, width]); var k = new Array(Nmeas);//to track path number var y = new Array(Nmeas); for(i=0;i<Nmeas;i++){ y[i] = d3.scale.linear().rangeRound([height, 0]); k[i]=1; } svg[0].attr("transform", "translate(" + margin.left + "," + margin.top + ")"); curNode = json; if(dispObj.getShowLegend()) makeLegend(svg,Nmeas,measNum,plotWaterFall,clickRectWaterFall,json,k,1, dispObj); function clickRectWaterFall(ele,k,svg,n){ k[+ele.id]=!k[+ele.id]; svg[0].selectAll("path").remove(); svg[0].selectAll("g").remove(); svg[0].selectAll("circle").remove(); svg[0].selectAll("text").remove(); svg[0].selectAll("rect").remove(); plotWaterFall(divId, svg, curNode, x,y,width,height,json,measNum,k, dispObj, MeasFormats); } plotWaterFall(divId, svg, json, x,y,width,height,json,measNum,k, dispObj, MeasFormats); } function plotWaterFall(divId, svg, curNode, x,y,width,height,json,measNum,k, dispObj, MeasFormats){ var n = y.length, cnc = new Array(); if(curNode.children.length > width/50) for(var i=0; i<Math.max(2,Math.floor(width/50)); i++) cnc[i] = curNode.children[i]; else cnc=curNode.children; var i=0; svg[0].append("rect") .attr("width",width) .attr("height",height) .style("fill",dispObj.getBgColor()) .style("stroke",function(){ return dispObj.getdrawBorder() ? "black" : "none";}) .style("opacity",0.4); var xtickspace; if(dispObj.getShowTicks()&&dispObj.getShowTickLabels()) xtickspace = findxtickspace(cnc,dispObj); else xtickspace = 0; var y1 = d3.scale.linear().rangeRound([height-xtickspace, 0]); var maxy = 0,miny=0; miny=d3.min(cnc, function(d) { var totOfMeas = 0; for(i=0;i<n;i++){ if(k[i]) totOfMeas = totOfMeas+ +d.size[i]; miny = Math.min(miny,totOfMeas); } return Math.round(miny); }); maxy=d3.max(cnc, function(d) { var totOfMeas = 0; for(i=0;i<n;i++){ if(k[i]) totOfMeas=totOfMeas+ +d.size[i]; maxy = Math.max(maxy,totOfMeas); } return Math.round(maxy); }); if(maxy == 0 && miny == 0) maxy=10; var nTicks=getNticks(height, xtickspace); y1.domain(getNewMinMax(miny, maxy, nTicks)); tv=getTickValues(miny, maxy, nTicks); var xAxis = d3.svg.axis() .scale(x) .orient("bottom"); x.domain(cnc.map(function(d) { return d.name; })); var x1 = d3.scale.ordinal(); x1.domain(cnc).rangeRoundBands([0, x.rangeBand()]); //y.domain([0, d3.max(json.children, function(d) { return Math.max(d.size[measNum-1]);})]); var yaxis = new Array(n), ytext = new Array(n), rectangle = new Array(n), rectText = new Array(n); var drag = d3.behavior.drag() .origin(function() { var t = d3.select(this); return {x: t.attr("x"), y: t.attr("y")}; }) .on("drag", function(d,i) { d3.select(this).attr("transform", function(d,i){ return "translate(" + [ d3.event.x,d3.event.y ] + ")" }) }); svg[0].append("g") //for base line 0 .attr("class", "xaxiso") .attr("transform", "translate(0" + "," + y1(0) + ")" ) .call(d3.svg.axis().scale(x).orient("bottom")) svg[0].select(".xaxiso").selectAll(".tick").style("visibility","hidden"); svg[0].append("g") //for actual labelled axis .attr("class", "xaxis") .attr("transform", "translate(0" + "," + (height-xtickspace) + ")" ) .call(d3.svg.axis().scale(x).orient("bottom")) .selectAll("text") .text(function(d){ d=d.replace("'","'"); if(dispObj.getxFrom() == "all") return d;//d.length<= Math.ceil(height/35) ? d : d.substr(0,height/45)+".." ; else if(dispObj.getxFrom() == "first") return d.substr(0,dispObj.getxLength()); else return d.substr(d.length - Math.min(dispObj.getxLength(),d.length),d.length); }) .attr("dx", ".1em") .attr("dy", ".50em") .style("text-anchor", function() { return dispObj.getxPos()=="A" ? "end" : "middle";}) .attr("transform", function() { return dispObj.getxPos()=="A" ? "rotate(-65)" : "rotate(0)"; }) .on("click", function(d,i){ for(i=0;i<cnc.length;i++) if(d==cnc[i].name) { d=cnc[i]; break; } clickWaterFall(divId, d,i, svg,x,y,width,height,json,measNum,k,0, dispObj, MeasFormats)}); svg[0].select(".xaxis").selectAll(".tick").append("title") .text(function (d){return d;}); if(!dispObj.getMark()) svg[0].selectAll(".xaxis").selectAll(".tick").selectAll("line").remove(); if(dispObj.getShowLabel()) svg[0].append("text").attr("class","label") .text(cnc[0].dimName) .attr("transform","translate("+width/2+","+(height+lblPad)+")") .style("text-anchor", "middle"); var yaxis = svg[0].append("g") .attr("class", "yaxis") .call(d3.svg.axis().scale(y1).orient("left") .tickFormat(function(d){return formatSmallScale(d, MeasFormats[0])}) .tickSize(-(width),0,0) .tickValues(tv) ); if(!(dispObj.getShowGridLines() && dispObj.getShowTicks())) svg[0].select(".yaxis").selectAll("line").style("visibility","hidden"); if(dispObj.getShowLabel()) var ytext = svg[0].selectAll(".yaxis").append("g") .append("text") .attr("class","label") .attr("transform", "translate(" + -54 + "," + (height-xtickspace)/2 + ")rotate(-90)") .style("text-anchor", "middle") .text(json.measName.length>1?"Measures":json.measName[0]) if(!dispObj.getShowTicks()) svg[0].selectAll(".tick").remove(); if(!dispObj.getShowTickLabels()){ svg[0].selectAll(".xaxis").selectAll(".tick").selectAll("text").remove(); svg[0].selectAll(".yaxis").selectAll(".tick").selectAll("text").remove(); } svg[0].selectAll(".tick").selectAll("line").attr("class","ygridline"); //Actual columns plus the transition /*var r = svg.selectAll("rect")*/ var r = svg[0].append("g").selectAll("rect") .data(cnc); var t = new Array(); for(i=0;i<cnc.length;i++) t[i]=0; for(i=0;i<n;i++){ if(k[i]){ var a=0; r.enter().append("rect") .attr("class","class"+i) .attr("y", function(d) {var c; if(d.size[i]<0) c = (y1(0)-t[a]); else c = (y1((d.size[i]))-t[a]); a++; return c; }) .attr("x", function(d){a=0; //reset inner counter before height recalculation return x(d.name);}) .attr("height",0)//initial height before transition .attr("width",0)//initial width before transition begins .style("visibility","visible") .attr("fill", dispObj.colorArr[i]) .on("click", function(d,i){ clickWaterFall(divId, d,i, svg,x,y,width,height,json,measNum,k,0, dispObj, MeasFormats) } ) .on("mouseover", function(d,i){showToolTipl(divId, d, n, this,MeasFormats,dispObj);}) .on("mouseout", function(d,i){hideToolTip(divId, d,i)}) .transition().delay(function (d,i){ return i * 300;}) .duration(600) .attr("height", function(d) { t[a] = t[a]+ (y1(0) -y1((d.size[i]))); //add previous height a++; return Math.abs(y1(0) -y1(d.size[i])); }) .attr("transform",function(){ return "translate(" + ( x1.rangeBand()/(n+1)*i + x1.rangeBand()/(2*(n+1))) +",0)" ;}) .attr("width", x1.rangeBand()/(n+1)); if(dispObj.getpointLabel()){ a=0; r.enter().append("text") .attr("class", "class"+i) .attr("y", function(d) {var c; if(d.size[i]<0) c = (y1(0)-t[a]); else c = (y1((d.size[i]))-t[a]); a++; return c; }) .attr("x", function(d){ return x(d.name);}) .text(function(d){ return formatData(d.size[i],MeasFormats[i], (dispObj.getpointTooltip()=='A'?0:1))}) .style("fill",dispObj.colorArr[i]) .attr("transform",function(){ return "translate(" + ( x1.rangeBand()/(n+1)*i + x1.rangeBand()/(2*(n+1))) +",0)" ;}) } } } updateLegendll(divId, svg, curNode, x,y,width,height,json,measNum,k,clickWaterFall, dispObj, MeasFormats); } function clickWaterFall(divId, d,i, svg, x,y,width,height,json,measNum,k,c, dispObj, MeasFormats){ if((c==0 && d.children)||(c==1 && d.children[0].children)){ //var curNode; svg[0].selectAll("path").remove(); svg[0].selectAll("g").remove(); svg[0].selectAll("text").remove(); svg[0].selectAll("rect").remove(); if( (c==1 || curLogic=="next") && d.children){ curLogic="next"; curNode=d; } else curNode=d.parent; plotWaterFall(divId, svg, curNode, x,y,width,height,json,measNum,k, dispObj, MeasFormats); } else alert("No further dimensions."); } //}