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: donut.js
Close
function drawDonutChart(data, divId, Title, Width, Height, Ndim, Nmeas, MeasFormats,Dimensions, Measures, dispObj){ var measNum = 1, width = Width-20, height = Height-45, radius = Math.min(width, height) / 2 - 5, n = Nmeas, k = new Array(Nmeas); var color = d3.scale.ordinal() //.range(G_seriesColors); .range(["#98abc5", "#8a89a6", "#7b6888", "#6b486b", "#a05d56", "#d0743c", "#ff8c00"]); for(var i=0; i<Nmeas; i++){ k[i]=1; } var json=makeJsonFromArrayNew(data, Ndim, Nmeas, MeasFormats[0], dispObj); makeParentsJson(json,measNum); resolveComputeMeasure(json, dispObj.RD.General.Measures); d3.select("#"+divId).html('<div class="myChart"><div class="svgLegend"></div><div class="tipsy"></div></div>'); d3.selectAll(".tipsy").style("display", "none"); var svg = findSvgArea(Nmeas,dispObj,json, Width, Height,divId), radius = Math.min(svg[2], svg[3]) / 2; svg[0].attr("transform", "translate(" + svg[3]/2 + "," + svg[2]/2 + ")"); /* var svg = d3.select("#"+divId).select(".myChart") .append("svg") .attr("width", width) .attr("height", height) .append("g") .attr("transform", "translate(" + width / 2 + "," + height / 2 + ")"); svg.append("rect") //border rect .attr("width",2*radius) .attr("height",2*radius) .style("fill",dispObj.getBgColor()) .style("stroke",function(){ return dispObj.getdrawBorder() ? "black" : "none";}) .style("opacity",0.4) .attr("transform", "translate(" + -radius + "," + -radius + ")"); */ //var n = Nmeas<=Width/66 ? Nmeas : Width>200 ? 4 : 3; curNode = json; if(dispObj.getShowLegend()) makeLegend(svg,Nmeas,measNum,"",clickPlotDonut,json,k,1, dispObj); plotDonutChart(divId, svg[0], json, radius, json, measNum, n, dispObj, MeasFormats,k); function clickPlotDonut(ele,k,svg,n){ k[+ele.id]=!k[+ele.id]; svg[0].selectAll("path").remove(); svg[0].selectAll("g").remove(); svg[0].selectAll(".arc").remove(); svg[0].selectAll("text").remove(); plotDonutChart(divId, svg[0], curNode, radius, json, measNum, n, dispObj, MeasFormats,k); } } function plotDonutChart(divId, svg, curNode, radius, json, measNum, n, dispObj, MeasFormats,k){ var cnc = curNode.children; if (cnc.length>12) cnc.slice(0,12); var x = d3.scale.linear() .range([0, 2 * Math.PI]), y = d3.scale.pow().exponent(1.3).domain([0, 1]).range([0, radius]), arc = new Array(n), path = new Array(n), text = new Array(n), i = 0, p=0, or, pie = new Array(n), g = new Array(n); var vMeas=0; for(var j=0; j<k.length; j++){ if(k[j]) vMeas++; } rad = radius/vMeas>25 ? radius/vMeas-2 : 25; for(i=0;i<n;i++){ if(!k[i]) continue; or = (rad)*(p+1); if(or<=radius){ pie[i] = d3.layout.pie() .sort(null) .value(function(d) { return +d.size[i]; }); /*arc[i] = d3.svg.arc() .outerRadius(radius - radius*(n-i+1)/(n*1.75) - radius/10)//5.75 .innerRadius(radius*(i+2)/(n*1.75));*/ arc[i] = d3.svg.arc() .outerRadius(function(){ return or;}) //5.75 .innerRadius(function() { return (rad)*p+ (i==0?10:5)}); g[i] = svg.selectAll(".arc") .data(pie[i](cnc)) .enter().append("g") .attr("class", "arc"+i); path[i] = g[i].append("path") .attr("d", arc[i]) .attr("id",i) .style("fill","white") .style("stroke","white") .on("click", function(d,i){ clickDonut(divId, d, i,svg,0,0,0, radius,json, measNum, k,0, dispObj, MeasFormats)}) .on("mouseover", function(d,i){showToolTips(divId, d.data, +this.id+1,MeasFormats); }) .on("mouseout", function(d,i){hideToolTip(divId, d,i)}) .transition().delay(function (d,i){ return i * 100;}) .duration(300) .style("fill", function(d, i) { return dispObj.colorArr[i%20]; }); text[i] = g[i].append("text") .attr("dy", ".35em") .style("text-anchor", "middle") .style("visibility",function(d){ d.data.name.replace("'","'"); return d.data.name.length < (d.endAngle - d.startAngle )*radius*(p+1)/50? "visible" : d.data.name.length > (radius - radius*(vMeas-p+1)/5.75 - radius/10 - radius*(p+2)/5.75)/3.4 ? "hidden" :"visible" ; } ) .on("click", function(d,i){ clickDonut(divId, d, i,svg,0,0,0, radius,json, measNum, k,0, dispObj, MeasFormats)}) .transition().delay(function (d,i){ return i * 100;}) .duration(300) .attr("transform", function(d) { return "translate(" + arc[i].centroid(d) + ")rotate(" + angle(d) + ")"; }) .text(function(d,i) { return d.data.name.replace("'","'"); }); p++; } } if(dispObj.getShowLabel()) svg.append("text").attr("class","label") .text(cnc[0].dimName) .attr("transform","translate("+(radius+lblPad)+","+0+")") .style("text-anchor", "middle"); function angle(d) { var a = (d.startAngle + d.endAngle) * 90 / Math.PI - 90; return d.data.name.length < (d.endAngle - d.startAngle )*radius*(i+1)/38 ? ((a>0)&&(a<180)? a-90 : a+ 90) : (a > 90 ? a - 180 : a); } updateLegendll(divId, svg, curNode,0,0,radius,radius,json,measNum,k,clickDonut, dispObj, MeasFormats); } var curLogic="next"; function clickDonut(divId, d, i,svg,x,y,r, radius,json, measNum, k,c, dispObj, MeasFormats){ if((c==0 && ((d.data)?d.data : d).children)||(c==1 && ((d.data)?d.data : d).children[0].children)){ //var curNode; svg.selectAll(".arc").remove(); svg.selectAll("path").remove(); svg.selectAll("g").remove(); svg.selectAll("text").remove(); if( c==1 || (curLogic=="next" && (d.children || d.data.children))){ curLogic="next"; curNode=(d.data)?d.data : d; } else curNode=d.data.parent; plotDonutChart(divId, svg, curNode, radius, json, measNum, k.length, dispObj, MeasFormats,k); } else alert("No further dimensions."); }