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: stock.js
Close
function drawStockChart(data, divId, Title, Width, Height, Ndim, Nmeas, MeasFormats,dispObj,tooltip){ var margin = {top: 10, right: Nmeas*48, bottom: 20, left: 65}, width, height; 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; svg[0].attr("transform", "translate(" + margin.left + "," + margin.top + ")"); //var Heading=data.splice(0,1); var measNum = 1, k = new Array(Nmeas); for(var i=0;i<Nmeas;i++) k[i]=1; if(dispObj.getShowLegend()) makeLegend(svg,Nmeas,measNum,0,clickRectL,json,k,1, dispObj); var x = d3.time.scale() .range([0, width]); var y = d3.scale.linear() .rangeRound([height, 0]); plotStock(divId, svg, json, x,y,width,height,json,measNum,k, dispObj, MeasFormats) } function calcParseDate(cnc,parsedate){ if(typeof cnc != "undefined"){ var date_val=cnc[0].name; if(/(\d{4})[-](\d{2})[-](\d{2})/.exec(date_val) != null && date_val.length==19) parsedate = d3.time.format("%Y-%m-%d %H:%M:%S").parse; else if(/(\d{4})[\/](\d{2})[\/](\d{2})/.exec(date_val) != null && date_val.length==19) parsedate = d3.time.format("%Y/%m/%d %H:%M:%S").parse; else if(/(\d{4})[-](\d{2})[-](\d{2})/.exec(date_val) != null) parsedate = d3.time.format("%Y-%m-%d").parse; else if(/(\d{4})[\/](\d{2})[\/](\d{2})/.exec(date_val) != null) parsedate = d3.time.format("%Y/%m/%d").parse; else if(/(\d{2})[-](\d{2})[-](\d{4})/.exec(date_val) != null) parsedate = d3.time.format("%d-%m-%Y").parse; else if(/(\d{2})[\/](\d{2})[\/](\d{4})/.exec(date_val) != null) parsedate = d3.time.format("%d/%m/%Y").parse; else parsedate = d3.time.format("%y-%b-%d").parse; return parsedate; /*{ drawLineChart(data, divId, Title, Width, Height, Ndim, Nmeas, MeasFormats,0, 0, dispObj,tooltip); return false; }*/ /*else{ d3.select("#"+divId).html("<center><font color=red>Date not selected.</font></center>"); return false; }*/ } else{ d3.select("#"+divId).html("No Data Found"); return; } } function plotStock(divId, svg, curNode, x,y,width,height,json,measNum,k, dispObj, MeasFormats){ var Nmeas = json.size.length, line = new Array(Nmeas), path = new Array(Nmeas), circle = new Array(Nmeas), cnc=curNode.children, h, parsedate ; parsedate = calcParseDate(cnc,parsedate); h=height; var xtickspace; if(dispObj.getShowTicks()&&dispObj.getShowTickLabels()) { //xtickspace = findxtickspace(cnc,dispObj); var name; var max = cnc[0].name.length for(i=0;i<cnc.length;i++){ if(cnc[i].name.length > max){ max = cnc[i].name.length; name = cnc[i].name } } xtickspace = max/2 * 4 }else xtickspace = 0; nTicks=getNticks(height, xtickspace); var miny=d3.min(cnc, function(d) { var s=0; for(i=0;i<Nmeas;i++) if(Math.min(d.size[i])<s) s = Math.min(d.size[i]); return s; }); var maxy=d3.max(cnc, function(d) { var s=0; for(i=0;i<Nmeas;i++) if(Math.max(d.size[i])>s) s = Math.max(d.size[i]); return s; }); y.domain(getNewMinMax(miny, maxy, nTicks)); cnc.forEach(function(d) { d.date = parsedate(d.name); }); /* remove wrong dates */ for(var i=cnc.length-1; i>=0; i--){ if(cnc[i].date && cnc[i].date.getFullYear()<1000){ cnc.splice(i,1); } } if(!cnc[0].date){ cnc.forEach(function(d) { d.date = d.name; }); x=d3.scale.ordinal() .rangeRoundBands([0,width]) .domain(cnc.map(function(d) { return d.date; })); } else{ cnc = cnc.sort(function (a, b) { return a.date - b.date; } ); x = d3.time.scale() .domain(d3.extent(cnc, function(d) { return d.date; })) .range([0, width]); h=3.5*height/5; plotpan(); } y.range([h - xtickspace,0]); var xAxis = d3.svg.axis() .scale(x) .orient("bottom"); tv=getTickValues(miny, maxy, nTicks); var yAxis = d3.svg.axis() .scale(y) .tickSize(-width, 0, 0) .orient("left") .tickFormat( function(d) { return formatSmallScale(d, MeasFormats[0]) }) .ticks(tv.length) .tickValues(tv); svg[0].append("rect") //border rect .attr("width",width) .attr("height",h-xtickspace) .style("fill",dispObj.getBgColor()) .style("stroke",function(){ return dispObj.getdrawBorder() ? "black" : "none";}) .style("opacity",0.4); var focus = svg[0]; focus.append("g") .attr("class", "xaxis") .attr("transform", "translate(0," + (h-xtickspace) + ")") .call(xAxis) .selectAll("text") .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.toString()==cnc[i].date.toString()) { d=cnc[i]; break; } clickStock(divId, d,i, svg, x,y,width,height,json,measNum,k,0,dispObj, MeasFormats)}) if(!parsedate(cnc[0].name)){ focus.selectAll(".xaxis") .selectAll("text") .text(function(d){ if(typeof(d) == "string"){ d=d.replace("'","'"); if(dispObj.getxFrom() == "all") return d; else if(dispObj.getxFrom() == "first") return d.substr(0,dispObj.getxLength()); else return d.substr(d.length - dispObj.getxLength(),d.length); } }) } focus.select(".xaxis").selectAll(".tick text").call(wrap,x.rangeBand()/2).append("title").text(function (d){return d;}); if(!dispObj.getMark()) focus.selectAll(".xaxis").selectAll(".tick").selectAll("line").remove(); if(dispObj.getShowLabel()) focus.append("text") .attr("class","label") .text(cnc[0].dimName) .attr("transform","translate("+width/2+","+(h+lblPad)+")") .style("text-anchor", "middle"); focus.append("g") .attr("class", "yaxis") .call(yAxis) if(dispObj.getShowLabel()) focus.append("text") .attr("class","label") .text(json.measName.length>1?"Measures":json.measName[0]) .attr("transform", "translate(" + (-54) + "," + h/2 + ")rotate(-90)") .style("text-anchor", "middle"); focus.append("g").attr("class","ygrid").call(yAxis) if(!dispObj.getMark()) focus.selectAll(".yaxis").selectAll(".tick").selectAll("line").remove(); if(!(dispObj.getShowGridLines() && dispObj.getShowTicks())) focus.select(".yaxis").selectAll("line").style("visibility","hidden"); focus.selectAll(".ygrid").selectAll(".tick").selectAll("text").remove(); if(!dispObj.getShowTicks()) focus.selectAll(".tick").remove(); if(!dispObj.getShowTickLabels()){ focus.selectAll(".xaxis").selectAll(".tick").selectAll("text").remove(); focus.selectAll(".yaxis").selectAll(".tick").selectAll("text").remove(); } focus.selectAll(".tick").selectAll("line").attr("class","ygridline"); var i; for(i=0; i<Nmeas; i++){ line[i] = d3.svg.line() .interpolate("linear") .x(function(d) { return x(d.date); }) .y(function(d) { return y(d.size[i]); }); path[i] = focus.append("path") .style("fill", "none") .style("stroke", dispObj.colorArr[i] ) .attr("d", line[i](cnc)) .attr("class","class"+i) .attr("transform", function(){ if(!parsedate(cnc[0].name)) return "translate("+width/(cnc.length*2) + ",0)";}); /*var totalLength = path[i].node().getTotalLength(); path[i].attr("stroke-dasharray", totalLength + " " + totalLength) .attr("stroke-dashoffset", totalLength) .transition() .duration(2000) .ease("linear") .attr("stroke-dashoffset", 0);*/ circle[i] = focus.selectAll(".xcirc"+i) .data(cnc) .enter().append("circle") .attr("class", "class"+i) .attr("fill", dispObj.colorArr[i]) .attr("stroke", dispObj.colorArr[i]) .attr("cx", function(d) { return x(d.date) ; }) .attr("cy", function(d) { return y(d.size[i]); }) .attr("r", function(d) { return 2}) .attr("ycol", i) .attr("transform", function(){ if(!parsedate(cnc[0].name)) return "translate("+width/(cnc.length*2) + ",0)";}) .on("mouseover", function(d,i){ showToolTipl(divId, d, Nmeas, this, MeasFormats,dispObj); }) .on("mouseout", function(d,i){ hideToolTip(divId, d, i); }) .on("click", function(d,i){ clickStock(divId, d,i, svg, x,y,width,height,json,measNum,k,0, dispObj, MeasFormats) }) } updateLegendll(divId, svg, curNode, x,y,width,height,json,1,k,clickStock, dispObj, MeasFormats); function plotpan(){ svg[0].selectAll("defs").remove(); svg[0].append("defs").append("clipPath") .attr("id", "clip") .append("rect") .attr("width", width+4) .attr("height", height+4); var x2= d3.time.scale() .range([0, width]);; /*cnc.forEach(function(d) { d.date = parsedate(d.name); }); if(!cnc[0].date){ cnc.forEach(function(d) { d.date = d.name; }); x2=d3.scale.ordinal() .rangeRoundBands([0,width]) .domain(cnc.map(function(d) { return d.date; })); } else*/ x2 = d3.time.scale() .domain(d3.extent(cnc, function(d) { return d.date; })) .range([0, width]); var y2 = d3.scale.linear() .domain(y.domain()) .range([0.2*height,0]); var context = svg[0].append("g") .attr("transform","translate(0,"+ h*1.2 + ")"); context.append("g") .attr("class","ybrush") .call(d3.svg.axis().scale(y2).orient("left")) d3.selectAll(".ybrush").selectAll(".tick").remove(); d3.selectAll(".ybrush").selectAll(".domain").style("stroke","white"); context.append("g") .attr("class","xbrush") .call(d3.svg.axis().scale(x2).orient("bottom")) .attr("transform","translate(0,"+ (0.2*height) + ")") .selectAll("text").attr("transform","rotate(-20)"); d3.selectAll(".xbrush").selectAll(".domain").style("stroke","white"); /*if(!parsedate(cnc[0].name)) context.selectAll(".xbrush").selectAll("text").text(function(d){ return d.replace("'","'"); });*/ var bline = new Array(Nmeas), bpath = new Array(Nmeas); for(var i=0; i<Nmeas; i++){ bline[i] = d3.svg.line() .interpolate("linear") .x(function(d) { return x2(d.date); }) .y(function(d) { return y2(d.size[i]); }); bpath[i] = context.append("path") .style("fill", "none") .style("stroke", dispObj.colorArr[i] ) .attr("d", bline[i](cnc)) .attr("class","class"+i) /*.attr("transform", function(){ if(!parsedate(cnc[0].name)) return "translate("+width/(cnc.length*2) + ",0)"; });*/ } var brush = d3.svg.brush() .x(x2) .on("brush", brushed) ; context.append("g").call(brush).selectAll("rect") .attr("y",0) .style("visibility", function(d,i){return (i<2?"visible":"hidden");}) .style("fill", function(d,i){return (i<2?"grey":"none");}) .attr("height", 0.2*height) .attr("fill-opacity",0.125); function brushed() { parsedate = calcParseDate(cnc,parsedate); var tempcnc = new Array(); /*if(!parsedate(cnc[0].name)){ var xleft = brush.extent()[0], xright = brush.extent()[1]; var leftEdges = x2.range(); var widthofband = x2.rangeBand(); var posNo; for(posNo=0; brush.extent()[0] > (leftEdges[posNo] + widthofband); posNo++) {} xleft=posNo; for(;brush.extent()[1] > (leftEdges[posNo] + widthofband); posNo++){} xright = posNo; var j=0; for(var i=xleft;i<=Math.min(xright,cnc.length-1);i++) tempcnc[j++]=cnc[i]; x.domain(tempcnc.map(function(d) { return d.date; })) } else{*/ x.domain(brush.empty() ? x2.domain() : brush.extent()).range([0,width]); tempcnc = cnc; //} for(i=0;i<Nmeas;i++){ line[i] = d3.svg.line() .interpolate("linear") .x(function(d) { return x(d.date); }) .y(function(d) { return y(d.size[i]); }); path[i].attr("d", line[i](tempcnc)) /*.attr("transform", function(){ if(!parsedate(tempcnc[0].name)) return "translate("+width/(tempcnc.length*2) + ",0)";})*/ .attr("clip-path",function(){return "url(#clip)"}) circle[i].data(tempcnc).attr("cx", function(d) { return x(d.date) ; }) .attr("cy", function(d) { return y(d.size[i]); }) /*.attr("transform", function(){ if(!parsedate(tempcnc[0].name)) return "translate("+width/(tempcnc.length*2) + ",0)";})*/ .attr("clip-path",function(){return "url(#clip)"}) } focus.select(".xaxis").call(xAxis) .selectAll("text") .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)";}) /*if(!parsedate(cnc[0].name)) focus.selectAll(".xaxis").selectAll("text").text(function(d){ return d.replace("'","'"); });*/ } } } function clickStock(divId, d,i, svg, x,y,width,height,json,measNum,k,c, dispObj, MeasFormats){ if(d.children){ svg[0].selectAll("g").remove(); svg[0].selectAll("path").remove(); svg[0].selectAll("circle").remove(); svg[0].selectAll("text").remove(); svg[0].selectAll("rect").remove(); plotStock(divId, svg, d, x,y,width,height,json,measNum,k, dispObj, MeasFormats); } else alert("No further dimensions."); }