OXIESEC PANEL
- Current Dir:
/
/
home
/
cubot
/
docroot
/
showcase
/
js
/
D3Plugins
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
12/31/2022 06:53:36 AM
rwxr-xr-x
📄
Parallel_Coordinate_Chart.js
5.92 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
backbone.js
41.59 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
bullet.css
422 bytes
08/14/2022 11:05:11 AM
rw-r--r--
📄
bullet.js
7.89 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
d3.csv.js
2.36 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
d3.js
130.63 KB
08/14/2022 11:05:12 AM
rw-r--r--
📄
d3.layout.js
48.99 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
filter.js
2.87 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
grid.js
3.96 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
jquery-ui-1.8.16.custom.min.js
205.53 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
jquery.event.drag-2.0.min.js
4.76 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
options.js
1.25 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
parallel-coordinates-lib.js
6.51 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
pie.js
2.16 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
slick.core.js
12.36 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
slick.dataview.js
18.52 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
slick.grid.css
2.66 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
slick.grid.js
95.33 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
slick.pager.js
5.16 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
style.css
5.82 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
underscore.js
33.69 KB
08/14/2022 11:05:11 AM
rw-r--r--
Editing: Parallel_Coordinate_Chart.js
Close
function writeParallelCoordinateHtml(divId, Title){ var str=' <div id="nav">'+'<span style="font-size: 25px;float: left;padding: 20px;color: white;">'+Title+'</span>'+'<div class="widget right toggle"> <input type="range" min="0" max="1" value="0.8" step="0.01" name="power" list="powers" id="line_opacity"></input> <br/> Opacity: <span id="opacity_level">80%</span> </div> <div><a href="#" id="shadows" class="right toggle">Shadows</a></div> <div><a href="#" id="inverted" class="right toggle">Dark</a></div> <div><a href="#" id="no_ticks" class="right toggle">Hide Ticks</a></div> </div> <div id="main"> <div class="widgets"> <div id="totals" class="widget right">Total Selected<br/></div> <div id="pie" class="widget right">Group Breakdown<br/></div> <a href="#" id="export_selected" class="button_parallel green filter_control">Export</a> <a href="#" id="remove_selected" class="button_parallel red filter_control">Remove</a> <a href="#" id="keep_selected" class="button_parallel green filter_control">Keep</a> <div id="pager" class="xinfo"></div> <div id="legend"> </div> </div> <div id="parallel"></div> <div id="myGrid"></div> </div>'; $('div#'+divId).html(str); $('div#'+divId).css('height', '100%'); $('div#'+divId).css('width', '100%'); } function kpiFormatter(row, cell, value, columnDef, dataContext) { if(columnDef.format && columnDef.format.length>0) return formatData(value, columnDef.format, 0); else return value; } //mydataset = d3.csv.parse(inData.join('\n')); function parse2DArray(data){ var header=new Array(), objArr=new Array(); for(var i=0; i<data.length; i++){ if (i) { var o = {}, j = -1, m = header.length; while (++j < m) o[header[j]] = data[i][j]; objArr.push(o); } else { header = data[i]; } } return objArr; } function drawParallelCoordinateChart(inData, divId, Title, Width, Height, Ndim, Nmeas, MeasFormats, Dimensions, Measures, dispObj){ writeParallelCoordinateHtml(divId, Title) SetOptions(); //formatstr(inData, MeasFormats, Ndim, Nmeas); Array.prototype.getUnique = function(){ var u = {}, a = []; for(var i = 0, l = this.length; i < l; ++i){ if(u.hasOwnProperty(this[i])) { continue; } a.push(this[i]); u[this[i]] = 1; } return a; } var dimensions = new Filter(); var highlighter = new Selector(); mydataset =parse2DArray(inData); dimensions.set({data: mydataset}); var columns = _(mydataset[0]).keys(); var xtabDim = []; var format=[]; for(var i=0, j=0; i<inData[0].length; i++){ if(i<Ndim) format[i]=""; else{ format[i]=MeasFormats[j++]; } } for(var iy=1; iy<_(mydataset).size(); iy++){ xtabDim[iy-1] = _(mydataset[iy]).values()[Ndim-1]; } xtabDim = xtabDim.sort().getUnique(); var colors = new Array(); var i=0; _(xtabDim).each(function (value){ colors[value]=G_seriesColors[i++]; }); _(xtabDim).each(function(Product) { $('#legend').append("<div class='item'><div class='color' style='background: " + colors[Product] + "';></div><div class='key'>" + Product + "</div></div>"); }); var pc = parallel(dimensions, colors, Ndim, columns, xtabDim, MeasFormats); var pie = piegroups(mydataset, xtabDim, colors, columns[Ndim-1]); var totals = pietotals( ['in', 'out'], [_(mydataset).size(), 0] ); var slicky = new grid({ model: dimensions, selector: highlighter, width: $('#main').width(), columns: columns, format:format }); // vertical full screen var parallel_height = $(window).height() - 64 - 12 - 120 - 320; if (parallel_height < 120) parallel_height = 120; // min height if (parallel_height > 340) parallel_height = 340; // max height $('#parallel').css({ height: parallel_height + 'px', //width: $(window).width() + 'px' width: Width+ 'px' }); slicky.update(); pc.render(); dimensions.bind('change:filtered', function() { var data = dimensions.get('data'); var filtered = dimensions.get('filtered'); var data_size = _(data).size(); var filtered_size = _(filtered).size(); pie.update(filtered); totals.update([filtered_size, data_size - filtered_size]); var opacity = _([8/Math.pow(filtered_size,0.37), 100]).min(); $('#line_opacity').val(opacity).change(); }); highlighter.bind('change:selected', function() { var highlighted = this.get('selected'); pc.highlight(highlighted); }); $('#remove_selected').click(function() { dimensions.outliers(); pc.update(dimensions.get('data')); pc.render(); dimensions.trigger('change:filtered'); return false; }); $('#keep_selected').click(function() { dimensions.inliers(); pc.update(dimensions.get('data')); pc.render(); dimensions.trigger('change:filtered'); return false; }); $('#export_selected').click(function() { var data = dimensions.get('filtered'); var keys = _.keys(data[0]); var csv = _(keys).map(function(d) { return '"' + addslashes(d) + '"'; }).join(","); _(data).each(function(row) { csv += "\n"; csv += _(keys).map(function(k) { var val = row[k]; if (_.isString(val)) { return '"' + addslashes(val) + '"'; } if (_.isNumber(val)) { return val; } if (_.isNull(val)) { return ""; } }).join(","); }); var uriContent = "data:application/octet-stream," + encodeURIComponent(csv); var myWindow = window.open(uriContent, "Nutrient CSV"); myWindow.focus(); return false; }); $('#line_opacity').change(function() { var val = $(this).val(); $('#parallel .foreground path').css('stroke-opacity', val.toString()); $('#opacity_level').html((Math.round(val*10000)/100) + "%"); }); $('#parallel').resize(function() { // vertical full screen pc.render(); var val = $('#line_opacity').val(); $('#parallel .foreground path').css('stroke-opacity', val.toString()); }); $('#parallel').resizable({ handles: 's', resize: function () { return false; } }); $('#myGrid').resizable({ handles: 's' }); function addslashes( str ) { return (str+'') .replace(/\"/g, "\"\"") // escape double quotes .replace(/\0/g, "\\0"); // replace nulls with 0 }; }