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: radar.js
Close
function drawRadarChart(Data, divId, Title, Width, Height, Ndim, Nmeas, MeasFormats,dispObj,toolTip){ Height=makeProperHeight(Height, divId); Width=makeProperWidth(Width, divId); var vizPadding = { top: 20, right: 0, bottom: 20, left: 0 }, radius, radiusLength, ruleColor = "#CCC"; var hours= new Array(); var series = new Array(); //Nmeas=Data[0].length-Ndim; for(var j=0; j<Nmeas; j++){ series[j]=new Array(); } for(var i=1; i<Data.length; i++){ for(var j=0; j<Nmeas; j++){ series[j].push(+Data[i][Ndim+j]); } hours.push(Data[i][0]); } for(var j=0; j<Nmeas; j++){ series[j].push(+Data[1][Ndim+j]); } mergedArr = series[0].concat(series[1]); var minVal =d3.min(mergedArr); var maxVal = d3.max(mergedArr); /*give 25% of range as buffer to top*/ maxVal = maxVal + ((maxVal - minVal) * 0.25); minVal = 0; buildBase(divId, (Height/3)*2, Width); setScales(minVal, maxVal, vizPadding, (Height/3)*2, Width); addAxes(hours,maxVal, ruleColor, MeasFormats); draw(series); drawTextReport(divId, Data, Ndim, Nmeas, Height/3, Width, MeasFormats); }; var buildBase = function(divId, h, w){ var vis = d3.select("#"+divId).html(""); var viz = d3.select("#"+divId) .append('svg:svg') .attr('width', w) .attr('height', h) .attr('class', 'svgchart'); viz.append("svg:rect") .attr('id', 'axis-separator') .attr('x', 0) .attr('y', 0) .attr('height', 0) .attr('width', 0) .attr('height', 0); vizBody = viz.append("svg:g") .attr('id', 'radar'); }; setScales = function (minVal, maxVal, vizPadding, h, w) { var heightCircleConstraint, widthCircleConstraint, circleConstraint, centerXPos, centerYPos; //need a circle so find constraining dimension heightCircleConstraint = h - vizPadding.top - vizPadding.bottom; widthCircleConstraint = w - vizPadding.left - vizPadding.right; circleConstraint = d3.min([ heightCircleConstraint, widthCircleConstraint]); radius = d3.scale.linear().domain([minVal, maxVal]) .range([0, (circleConstraint / 2)]); radiusLength = radius(maxVal); //attach everything to the group that is centered around middle centerXPos = widthCircleConstraint / 2 + vizPadding.left; centerYPos = heightCircleConstraint / 2 + vizPadding.top; vizBody.attr("transform", "translate(" + centerXPos + ", " + centerYPos + ")"); }; addAxes = function (hours, maxVal, ruleColor, MeasFormats) { var radialTicks = radius.ticks(4), i, circleAxes, lineAxes; vizBody.selectAll('.circle-ticks').remove(); vizBody.selectAll('.line-ticks').remove(); circleAxes = vizBody.selectAll('.circle-ticks') .data(radialTicks) .enter().append('svg:g') .attr("class", "circle-ticks"); circleAxes.append("svg:circle") .attr("r", function (d, i) { return radius(d); }) .attr("class", "circle") .style("stroke", ruleColor) .style("fill", "none"); circleAxes.append("svg:text") .attr("text-anchor", "middle") .attr("dy", function (d) { return -1 * radius(d);}) .text(function(d) { return formatSmallScale(Math.round(d), MeasFormats[0]); }) lineAxes = vizBody.selectAll('.line-ticks') .data(hours) .enter().append('svg:g') .attr("transform", function (d, i) { return "rotate(" + ((i / hours.length * 360) - 90) + ")translate(" + radius(maxVal) + ")"; }) .attr("class", "line-ticks"); lineAxes.append('svg:line') .attr("x2", -1 * radius(maxVal)) .style("stroke", ruleColor) .style("fill", "none"); lineAxes.append('svg:text') .text(String) .attr("text-anchor", function(d, i) { var angle=Math.abs((i / hours.length * 360) - 90); if(angle==90) return "middle"; else if(angle<90) return "start"; else return "end"; } ) .attr("transform", function (d, i) { //return (i / hours.length * 360) < 180 ? null : "rotate(180)"; return "rotate(" + -((i / hours.length * 360) - 90)+ ")"; }); }; var draw = function (series) { var groups, lines, linesToUpdate; highlightedDotSize = 4; groups = vizBody.selectAll('.series') .data(series); groups.enter().append("svg:g") .attr('class', 'series') .style('fill', function (d, i) { return G_seriesColors[i]; }) .style('stroke', function (d, i) { return G_seriesColors[i]; }); groups.exit().remove(); numAxix=series[0].length-1; lines = groups.append('svg:path') //.attr("class", "line") .attr("class", function(d,i){return "line"+(i+1)}) .attr("d", d3.svg.line.radial() .radius(function (d) { return 0; }) .angle(function (d, i) { if (i === numAxix) { i = 0; } //close the line return (i / numAxix) * 2 * Math.PI; })) .style("stroke-width", 3) //.style("fill", "none"); .style("opacity", "0.3"); groups.selectAll(".curr-point") .data(function (d) { return [d[0]]; }) .enter().append("svg:circle") .attr("class", "curr-point") .attr("r", 0); groups.selectAll(".clicked-point") .data(function (d) { return [d[0]]; }) .enter().append("svg:circle") .attr('r', 0) .attr("class", "clicked-point"); lines.attr("d", d3.svg.line.radial() .radius(function (d) { return radius(d); }) .angle(function (d, i) { if (i === 5) { i = 0; } //close the line return (i / 5) * 2 * Math.PI; })); }; var drawTextReport=function(divId, Data, Ndim, Nmeas, Height, Width, MeasFormats){ var htmlStr="<table width=90% align=center cellspacing=0 border=0>"; var total=new Array(); for(var j=0; j<Nmeas; j++){ total[j]=0; } if(Data.length >0){ /* Print Heading*/ htmlStr+="<tr class=radarRow>"; for(var j=0; j<Ndim; j++){ htmlStr+="<td class=dim><b>"+Data[0][j]+"</b></td>"; } for(var j=0; j<Nmeas; j++){ htmlStr+="<td class=meas style=\"color:"+G_seriesColors[j]+"\">"+Data[0][Ndim+j]+"</td>"; } htmlStr+="</tr>"; } for(var i=1; i<Data.length; i++){ htmlStr+="<tr class=radarRow>"; for(var j=0; j<Ndim; j++){ htmlStr+="<td class=dim>"+Data[i][j]+"</td>"; } for(var j=0; j<Nmeas; j++){ htmlStr+="<td class=meas style=\"color:"+G_seriesColors[j]+"\">"+formatData(Data[i][Ndim+j], MeasFormats[j])+"</td>"; total[j]+=parseFloat(Data[i][Ndim+j]); } htmlStr+="</tr>"; } htmlStr+="<tr class=radarTotalRow>"; for(j=0; j<Ndim; j++){ htmlStr+="<td class=dim> </td>"; } for(j=0; j<Nmeas; j++){ htmlStr+="<td class=meas style=\"color:"+G_seriesColors[j]+"\"><b>"+formatData(total[j], MeasFormats[j])+"</b></td>"; } htmlStr+="</tr></table>"; d3.select("#"+divId) .append("div") .style("width",Width+"px") .style("Height",Height+"px") .style("overflow","auto") .html(htmlStr); };