Repository: incubator-senssoft-tap Updated Branches: refs/heads/ryan-sankey [created] 607675ba5
http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/607675ba/Sankey/csvSankey-v4/index.html ---------------------------------------------------------------------- diff --git a/Sankey/csvSankey-v4/index.html b/Sankey/csvSankey-v4/index.html new file mode 100644 index 0000000..8003a5b --- /dev/null +++ b/Sankey/csvSankey-v4/index.html @@ -0,0 +1,123 @@ +<!DOCTYPE html> +<html> +<meta charset="utf-8"> +<title>Sankey Diagram</title> +<style> + #chart { + height: 800px; + } + + .node rect { + cursor: move; + fill-opacity: .9; + shape-rendering: crispEdges; + } + + .node text { + pointer-events: none; + text-shadow: 0 1px 0 #fff; + font-family: Arial, Helvetica, sans-serif; + } + + .link { + fill: none; + stroke: #000; + stroke-opacity: .2; + } + + .link:hover { + stroke-opacity: .5; + } +</style> + +<body> + <div id="chart"></div> + <script src="https://d3js.org/d3.v4.min.js"></script> + <script src="d3-sankey.js"></script> + <script src='https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.10.3/babel.min.js'></script> + <!-- <script lang='babel' type='text/babel'> --> + <script> + const margin = { + top: 1, + right: 1, + bottom: 6, + left: 1 + }; + + const width = 1200 - margin.left - margin.right; + const height = 800 - margin.top - margin.bottom; + const formatNumber = d3.format(',.0f'); + const format = d => `${formatNumber(d)} TWh`; + const color = d3.scaleOrdinal(d3.schemeCategory20); + + const svg = d3.select('#chart').append('svg') + .attr('width', width + margin.left + margin.right) + .attr('height', height + margin.top + margin.bottom) + .append('g') + .attr('transform', `translate(${margin.left},${margin.top})`); + + const sankey = d3_sankey.sankey() + .nodeWidth(20) + .nodePadding(30) + .size([width, height]) + .align("left"); + + const path = sankey.link(); + + d3.json('sankey.json', energy => { + + sankey + .nodes(energy.nodes) + .links(energy.links) + .layout(32); + + const link = svg.append('g').selectAll('.link') + .data(energy.links) + .enter().append('path') + .attr('class', 'link') + .attr('d', path) + .style('stroke-width', d => Math.max(1, d.dy)) + .sort((a, b) => b.dy - a.dy); + + link.append('title') + .text(d => `${d.source.name} â ${d.target.name}\n${format(d.value)}`); + + const node = svg.append('g').selectAll('.node') + .data(energy.nodes) + .enter().append('g') + .attr('class', 'node') + .attr('transform', d => `translate(${d.x},${d.y})`) + .call(d3.drag() + .subject(d => d) + .on('start', function() { + this.parentNode.appendChild(this); + }) + .on('drag', dragmove)); + + node.append('rect') + .attr('height', d => d.dy) + .attr('width', sankey.nodeWidth()) + .style('fill', d => d.color = color(d.name.replace(/ .*/, ''))) + .style('stroke', d => d3.rgb(d.color).darker(2)) + .append('title') + .text(d => `${d.name}\n${format(d.value)}`); + + node.append('text') + .attr('x', -6) + .attr('y', d => d.dy / 2) + .attr('dy', '.35em') + .attr('text-anchor', 'end') + .attr('transform', null) + .text(d => d.name) + .filter(d => d.x < width / 2) + .attr('x', 6 + sankey.nodeWidth()) + .attr('text-anchor', 'start'); + + function dragmove(d) { + d3.select(this).attr('transform', `translate(${d.x},${d.y = Math.max(0, Math.min(height - d.dy, d3.event.y))})`); + sankey.relayout(); + link.attr('d', path); + } + }); + </script> +</body> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/607675ba/Sankey/csvSankey-v4/sample.json ---------------------------------------------------------------------- diff --git a/Sankey/csvSankey-v4/sample.json b/Sankey/csvSankey-v4/sample.json new file mode 100644 index 0000000..1569e69 --- /dev/null +++ b/Sankey/csvSankey-v4/sample.json @@ -0,0 +1,81 @@ +{ + "nodes": [ + { + "name": "#document" + }, + { + "name": "a" + }, + { + "name": "a.btn" + }, + { + "name": "a.collapsed dropdown-toggle primary" + }, + { + "name": "a.dropdown-toggle navbar-text" + }, + { + "name": "a.dropdown-toggle primary ng-binding" + }, + { + "name": "a.modebar-btn" + }, + { + "name": "a.modebar-btn active" + }, + { + "name": "a.navbar-text neon-popup-button pull-right" + }, + { + "name": "a.ng-binding" + } + ], + "links": [ + { + "value": 1, + "target": 5, + "source": 4, + "duration": 0, + "typeChange": true, + "type": "blur", + "targetChange": true + }, + { + "value": 1, + "target": 5, + "source": 3, + "duration": 305, + "typeChange": false, + "type": "mouseover", + "targetChange": true + }, + { + "value": 1, + "target": 5, + "source": 1, + "duration": 456, + "typeChange": true, + "type": "mouseover", + "targetChange": true + }, + { + "value": 1, + "target": 1, + "source": 3, + "duration": -762069, + "typeChange": true, + "type": "mouseover", + "targetChange": false + }, + { + "value": 1, + "target": 0, + "source": 3, + "duration": 74, + "typeChange": false, + "type": "mouseover", + "targetChange": true + } + ] +} http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/607675ba/Sankey/csvSankey-v4/sampledTen.json ---------------------------------------------------------------------- diff --git a/Sankey/csvSankey-v4/sampledTen.json b/Sankey/csvSankey-v4/sampledTen.json new file mode 100644 index 0000000..8395ed6 --- /dev/null +++ b/Sankey/csvSankey-v4/sampledTen.json @@ -0,0 +1,217 @@ +{ + "nodes": [ + { + "id": 0, + "name": "#document" + }, + { + "id": 1, + "name": "a" + }, + { + "id": 2, + "name": "a.btn" + }, + { + "id": 3, + "name": "a.collapsed dropdown-toggle primary" + }, + { + "id": 4, + "name": "a.dropdown-toggle navbar-text" + }, + { + "id": 5, + "name": "a.dropdown-toggle primary ng-binding" + }, + { + "id": 6, + "name": "a.modebar-btn" + }, + { + "id": 7, + "name": "a.modebar-btn active" + }, + { + "id": 8, + "name": "a.navbar-text neon-popup-button pull-right" + }, + { + "id": 9, + "name": "a.ng-binding" + } + ], + "links": [ + { + "value": 1, + "target": 5, + "source": 4, + "duration": 0, + "typeChange": true, + "type": "blur", + "targetChange": true + }, + { + "value": 1, + "target": 5, + "source": 3, + "duration": 305, + "typeChange": false, + "type": "mouseover", + "targetChange": true + }, + { + "value": 1, + "target": 5, + "source": 3, + "duration": 28, + "typeChange": false, + "type": "mouseover", + "targetChange": true + }, + { + "value": 1, + "target": 5, + "source": 3, + "duration": 241, + "typeChange": false, + "type": "mouseover", + "targetChange": true + }, + { + "value": 1, + "target": 5, + "source": 3, + "duration": 82, + "typeChange": false, + "type": "mouseover", + "targetChange": true + }, + { + "value": 1, + "target": 5, + "source": 1, + "duration": 9, + "typeChange": true, + "type": "click", + "targetChange": false + }, + { + "value": 1, + "target": 5, + "source": 1, + "duration": 314, + "typeChange": true, + "type": "mouseover", + "targetChange": true + }, + { + "value": 1, + "target": 5, + "source": 1, + "duration": 895, + "typeChange": false, + "type": "mouseover", + "targetChange": true + }, + { + "value": 1, + "target": 5, + "source": 1, + "duration": 246, + "typeChange": true, + "type": "mouseover", + "targetChange": true + }, + { + "value": 1, + "target": 5, + "source": 1, + "duration": 456, + "typeChange": true, + "type": "mouseover", + "targetChange": true + }, + { + "value": 1, + "target": 0, + "source": 0, + "duration": 8883, + "typeChange": false, + "type": "mouseover", + "targetChange": true + }, + { + "value": 1, + "target": 0, + "source": 0, + "duration": 132609, + "typeChange": true, + "type": "blur", + "targetChange": false + }, + { + "value": 1, + "target": 1, + "source": 3, + "duration": -762069, + "typeChange": true, + "type": "mouseover", + "targetChange": false + }, + { + "value": 1, + "target": 0, + "source": 0, + "duration": 40634, + "typeChange": true, + "type": "blur", + "targetChange": false + }, + { + "value": 1, + "target": 0, + "source": 0, + "duration": 32341, + "typeChange": true, + "type": "blur", + "targetChange": false + }, + { + "value": 1, + "target": 1, + "source": 3, + "duration": -545841, + "typeChange": true, + "type": "mouseover", + "targetChange": false + }, + { + "value": 1, + "target": 0, + "source": 0, + "duration": 3170, + "typeChange": true, + "type": "blur", + "targetChange": false + }, + { + "value": 1, + "target": 0, + "source": 0, + "duration": 1260, + "typeChange": true, + "type": "focus", + "targetChange": false + }, + { + "value": 1, + "target": 0, + "source": 3, + "duration": 74, + "typeChange": false, + "type": "mouseover", + "targetChange": true + } + ] +} http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/607675ba/Sankey/csvSankey-v4/sankey.js ---------------------------------------------------------------------- diff --git a/Sankey/csvSankey-v4/sankey.js b/Sankey/csvSankey-v4/sankey.js new file mode 100644 index 0000000..0ac1abb --- /dev/null +++ b/Sankey/csvSankey-v4/sankey.js @@ -0,0 +1,295 @@ +d3.sankey = function() { + var sankey = {}, + nodeWidth = 24, + nodePadding = 8, + size = [1, 1], + nodes = [], + links = []; + + sankey.nodeWidth = function(_) { + if (!arguments.length) return nodeWidth; + nodeWidth = +_; + return sankey; + }; + + sankey.nodePadding = function(_) { + if (!arguments.length) return nodePadding; + nodePadding = +_; + return sankey; + }; + + sankey.nodes = function(_) { + if (!arguments.length) return nodes; + nodes = _; + return sankey; + }; + + sankey.links = function(_) { + if (!arguments.length) return links; + links = _; + return sankey; + }; + + sankey.size = function(_) { + if (!arguments.length) return size; + size = _; + return sankey; + }; + + sankey.layout = function(iterations) { + computeNodeLinks(); + computeNodeValues(); + computeNodeBreadths(); + computeNodeDepths(iterations); + computeLinkDepths(); + return sankey; + }; + + sankey.relayout = function() { + computeLinkDepths(); + return sankey; + }; + + sankey.link = function() { + var curvature = .5; + + function link(d) { + var x0 = d.source.x + d.source.dx, + x1 = d.target.x, + xi = d3.interpolateNumber(x0, x1), + x2 = xi(curvature), + x3 = xi(1 - curvature), + y0 = d.source.y + d.sy + d.dy / 2, + y1 = d.target.y + d.ty + d.dy / 2; + return "M" + x0 + "," + y0 + + "C" + x2 + "," + y0 + + " " + x3 + "," + y1 + + " " + x1 + "," + y1; + } + + link.curvature = function(_) { + if (!arguments.length) return curvature; + curvature = +_; + return link; + }; + + return link; + }; + + // Populate the sourceLinks and targetLinks for each node. + // Also, if the source and target are not objects, assume they are indices. + function computeNodeLinks() { + nodes.forEach(function(node) { + node.sourceLinks = []; + node.targetLinks = []; + }); + links.forEach(function(link) { + var source = link.source, + target = link.target; + if (typeof source === "number") source = link.source = nodes[link.source]; + if (typeof target === "number") target = link.target = nodes[link.target]; + source.sourceLinks.push(link); + target.targetLinks.push(link); + }); + } + + // Compute the value (size) of each node by summing the associated links. + function computeNodeValues() { + nodes.forEach(function(node) { + node.value = Math.max( + d3.sum(node.sourceLinks, value), + d3.sum(node.targetLinks, value) + ); + }); + } + + // Iteratively assign the breadth (x-position) for each node. + // Nodes are assigned the maximum breadth of incoming neighbors plus one; + // nodes with no incoming links are assigned breadth zero, while + // nodes with no outgoing links are assigned the maximum breadth. + function computeNodeBreadths() { + var remainingNodes = nodes, + nextNodes, + x = 0; + + while (remainingNodes.length) { + nextNodes = []; + remainingNodes.forEach(function(node) { + node.x = x; + node.dx = nodeWidth; + node.sourceLinks.forEach(function(link) { + if (nextNodes.indexOf(link.target) < 0) { + nextNodes.push(link.target); + } + }); + }); + remainingNodes = nextNodes; + ++x; + } + + // + moveSinksRight(x); + scaleNodeBreadths((size[0] - nodeWidth) / (x - 1)); + } + + function moveSourcesRight() { + nodes.forEach(function(node) { + if (!node.targetLinks.length) { + node.x = d3.min(node.sourceLinks, function(d) { return d.target.x; }) - 1; + } + }); + } + + function moveSinksRight(x) { + nodes.forEach(function(node) { + if (!node.sourceLinks.length) { + node.x = x - 1; + } + }); + } + + function scaleNodeBreadths(kx) { + nodes.forEach(function(node) { + node.x *= kx; + }); + } + + function computeNodeDepths(iterations) { + var nodesByBreadth = d3.nest() + .key(function(d) { return d.x; }) + .sortKeys(d3.ascending) + .entries(nodes) + .map(function(d) { return d.values; }); + + // + initializeNodeDepth(); + resolveCollisions(); + for (var alpha = 1; iterations > 0; --iterations) { + relaxRightToLeft(alpha *= .99); + resolveCollisions(); + relaxLeftToRight(alpha); + resolveCollisions(); + } + + function initializeNodeDepth() { + var ky = d3.min(nodesByBreadth, function(nodes) { + return (size[1] - (nodes.length - 1) * nodePadding) / d3.sum(nodes, value); + }); + + nodesByBreadth.forEach(function(nodes) { + nodes.forEach(function(node, i) { + node.y = i; + node.dy = node.value * ky; + }); + }); + + links.forEach(function(link) { + link.dy = link.value * ky; + }); + } + + function relaxLeftToRight(alpha) { + nodesByBreadth.forEach(function(nodes, breadth) { + nodes.forEach(function(node) { + if (node.targetLinks.length) { + var y = d3.sum(node.targetLinks, weightedSource) / d3.sum(node.targetLinks, value); + node.y += (y - center(node)) * alpha; + } + }); + }); + + function weightedSource(link) { + return center(link.source) * link.value; + } + } + + function relaxRightToLeft(alpha) { + nodesByBreadth.slice().reverse().forEach(function(nodes) { + nodes.forEach(function(node) { + if (node.sourceLinks.length) { + var y = d3.sum(node.sourceLinks, weightedTarget) / d3.sum(node.sourceLinks, value); + node.y += (y - center(node)) * alpha; + } + }); + }); + + function weightedTarget(link) { + return center(link.target) * link.value; + } + } + + function resolveCollisions() { + nodesByBreadth.forEach(function(nodes) { + var node, + dy, + y0 = 0, + n = nodes.length, + i; + + // Push any overlapping nodes down. + nodes.sort(ascendingDepth); + for (i = 0; i < n; ++i) { + node = nodes[i]; + dy = y0 - node.y; + if (dy > 0) node.y += dy; + y0 = node.y + node.dy + nodePadding; + } + + // If the bottommost node goes outside the bounds, push it back up. + dy = y0 - nodePadding - size[1]; + if (dy > 0) { + y0 = node.y -= dy; + + // Push any overlapping nodes back up. + for (i = n - 2; i >= 0; --i) { + node = nodes[i]; + dy = node.y + node.dy + nodePadding - y0; + if (dy > 0) node.y -= dy; + y0 = node.y; + } + } + }); + } + + function ascendingDepth(a, b) { + return a.y - b.y; + } + } + + function computeLinkDepths() { + nodes.forEach(function(node) { + node.sourceLinks.sort(ascendingTargetDepth); + node.targetLinks.sort(ascendingSourceDepth); + }); + nodes.forEach(function(node) { + var sy = 0, + ty = 0; + node.sourceLinks.forEach(function(link) { + link.sy = sy; + sy += link.dy; + }); + node.targetLinks.forEach(function(link) { + link.ty = ty; + ty += link.dy; + }); + }); + + function ascendingSourceDepth(a, b) { + return a.source.y - b.source.y; + } + + function ascendingTargetDepth(a, b) { + return a.target.y - b.target.y; + } + } + + function center(node) { + return node.y + node.dy / 2; + } + + function value(link) { + return link.value; + } + + return sankey; +}; http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/607675ba/Sankey/csvSankey-v4/sankey.json ---------------------------------------------------------------------- diff --git a/Sankey/csvSankey-v4/sankey.json b/Sankey/csvSankey-v4/sankey.json new file mode 100644 index 0000000..c7e0152 --- /dev/null +++ b/Sankey/csvSankey-v4/sankey.json @@ -0,0 +1,295 @@ +{ + "nodes": [ + { + "name": "Window" + }, + { + "name": "html" + }, + { + "name": "html" + }, + { + "name": "#document" + }, + { + "name": "#document" + }, + { + "name": "body.ng-scope" + }, + { + "name": "Window" + }, + { + "name": "html" + }, + { + "name": "div.expand-trigger" + }, + { + "name": "Window" + }, + { + "name": "html" + }, + { + "name": "div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded" + }, + { + "name": "div#neon-dashboard.container" + }, + { + "name": "Window" + }, + { + "name": "a#dataset-dropdown-link.dropdown-toggle primary ng-binding" + }, + { + "name": "html" + }, + { + "name": "span#add-visualization-plus-sign.glyphicon glyphicon-plus-sign" + }, + { + "name": "a#add-visualization-link.collapsed dropdown-toggle primary" + }, + { + "name": "div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded" + }, + { + "name": "html" + }, + { + "name": "Window" + }, + { + "name": "html" + }, + { + "name": "div#start-message.popover-content" + }, + { + "name": "p#start-message-text" + }, + { + "name": "a#dataset-dropdown-link.dropdown-toggle primary ng-binding" + }, + { + "name": "div#navbar-container.container" + }, + { + "name": "a#help-dropdown-link.dropdown-toggle navbar-text" + } + ], + "links": [ + { + "sequenceID": "Window->html", + "target": 1, + "sourceName": "Window", + "value": 1, + "source": 0, + "targetName": "html" + }, + { + "sequenceID": "html->#document", + "target": 3, + "sourceName": "html", + "value": 1, + "source": 2, + "targetName": "#document" + }, + { + "sequenceID": "#document->html", + "target": 1, + "sourceName": "#document", + "value": 1, + "source": 4, + "targetName": "html" + }, + { + "sequenceID": "#document->body.ng-scope", + "target": 5, + "sourceName": "#document", + "value": 1, + "source": 3, + "targetName": "body.ng-scope" + }, + { + "sequenceID": "html->Window", + "target": 6, + "sourceName": "html", + "value": 2, + "source": 1, + "targetName": "Window" + }, + { + "sequenceID": "Window->html", + "target": 7, + "sourceName": "Window", + "value": 1, + "source": 6, + "targetName": "html" + }, + { + "sequenceID": "body.ng-scope->html", + "target": 7, + "sourceName": "body.ng-scope", + "value": 1, + "source": 5, + "targetName": "html" + }, + { + "sequenceID": "html->div.expand-trigger", + "target": 8, + "sourceName": "html", + "value": 1, + "source": 7, + "targetName": "div.expand-trigger" + }, + { + "sequenceID": "html->Window", + "target": 9, + "sourceName": "html", + "value": 1, + "source": 7, + "targetName": "Window" + }, + { + "sequenceID": "Window->html", + "target": 10, + "sourceName": "Window", + "value": 1, + "source": 9, + "targetName": "html" + }, + { + "sequenceID": "div.expand-trigger->div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded", + "target": 11, + "sourceName": "div.expand-trigger", + "value": 1, + "source": 8, + "targetName": "div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded" + }, + { + "sequenceID": "div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded->div#neon-dashboard.container", + "target": 12, + "sourceName": "div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded", + "value": 1, + "source": 11, + "targetName": "div#neon-dashboard.container" + }, + { + "sequenceID": "html->Window", + "target": 13, + "sourceName": "html", + "value": 1, + "source": 10, + "targetName": "Window" + }, + { + "sequenceID": "div#neon-dashboard.container->a#dataset-dropdown-link.dropdown-toggle primary ng-binding", + "target": 14, + "sourceName": "div#neon-dashboard.container", + "value": 1, + "source": 12, + "targetName": "a#dataset-dropdown-link.dropdown-toggle primary ng-binding" + }, + { + "sequenceID": "Window->html", + "target": 15, + "sourceName": "Window", + "value": 1, + "source": 13, + "targetName": "html" + }, + { + "sequenceID": "a#dataset-dropdown-link.dropdown-toggle primary ng-binding->span#add-visualization-plus-sign.glyphicon glyphicon-plus-sign", + "target": 16, + "sourceName": "a#dataset-dropdown-link.dropdown-toggle primary ng-binding", + "value": 1, + "source": 14, + "targetName": "span#add-visualization-plus-sign.glyphicon glyphicon-plus-sign" + }, + { + "sequenceID": "span#add-visualization-plus-sign.glyphicon glyphicon-plus-sign->a#add-visualization-link.collapsed dropdown-toggle primary", + "target": 17, + "sourceName": "span#add-visualization-plus-sign.glyphicon glyphicon-plus-sign", + "value": 1, + "source": 16, + "targetName": "a#add-visualization-link.collapsed dropdown-toggle primary" + }, + { + "sequenceID": "a#add-visualization-link.collapsed dropdown-toggle primary->div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded", + "target": 18, + "sourceName": "a#add-visualization-link.collapsed dropdown-toggle primary", + "value": 1, + "source": 17, + "targetName": "div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded" + }, + { + "sequenceID": "div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded->html", + "target": 19, + "sourceName": "div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded", + "value": 1, + "source": 18, + "targetName": "html" + }, + { + "sequenceID": "html->Window", + "target": 20, + "sourceName": "html", + "value": 1, + "source": 19, + "targetName": "Window" + }, + { + "sequenceID": "Window->html", + "target": 21, + "sourceName": "Window", + "value": 1, + "source": 20, + "targetName": "html" + }, + { + "sequenceID": "html->div#start-message.popover-content", + "target": 22, + "sourceName": "html", + "value": 1, + "source": 21, + "targetName": "div#start-message.popover-content" + }, + { + "sequenceID": "div#start-message.popover-content->p#start-message-text", + "target": 23, + "sourceName": "div#start-message.popover-content", + "value": 1, + "source": 22, + "targetName": "p#start-message-text" + }, + { + "sequenceID": "p#start-message-text->a#dataset-dropdown-link.dropdown-toggle primary ng-binding", + "target": 24, + "sourceName": "p#start-message-text", + "value": 1, + "source": 23, + "targetName": "a#dataset-dropdown-link.dropdown-toggle primary ng-binding" + }, + { + "sequenceID": "a#dataset-dropdown-link.dropdown-toggle primary ng-binding->div#navbar-container.container", + "target": 25, + "sourceName": "a#dataset-dropdown-link.dropdown-toggle primary ng-binding", + "value": 1, + "source": 24, + "targetName": "div#navbar-container.container" + }, + { + "sequenceID": "div#navbar-container.container->a#help-dropdown-link.dropdown-toggle navbar-text", + "target": 26, + "sourceName": "div#navbar-container.container", + "value": 1, + "source": 25, + "targetName": "a#help-dropdown-link.dropdown-toggle navbar-text" + } + ] +} http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/607675ba/Sankey/csvSankey-v4/sankey825.csv ---------------------------------------------------------------------- diff --git a/Sankey/csvSankey-v4/sankey825.csv b/Sankey/csvSankey-v4/sankey825.csv new file mode 100644 index 0000000..bc3cc84 --- /dev/null +++ b/Sankey/csvSankey-v4/sankey825.csv @@ -0,0 +1 @@ +sequenceID,target,sourceName,targetName,value,source,pathLength,typeChange,type,targetChangeWindow->html,3,Window,html,1,2,1,1,focus,1#document->div.expand-trigger,0,#document,div.expand-trigger,1,1,1,1,load,1html->Window,5,html,Window,1,6,3,1,mouseover,1div.expand-trigger->div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,7,div.expand-trigger,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,1,4,8,1,scroll,1Window->html,9,Window,html,1,8,1,1,blur,1div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded->html,9,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,html,1,10,6,0,mouseover,1html->body.ng-scope,11,html,body.ng-scope,1,12,3,1,mouseover,1body.ng-scope->div.expand-trigger,13,body.ng-scope,div.expand-trigger,1,14,4,1,keydown,1div.expand-trigger->Window,16,div.expand-trigger,Window,1,15,8,1,scroll,1Window->html,18,Window,html,1,17,1,1,resize,1html->div#start-message.popover-content,19,html,div#start-me ssage.popover-content,1,20,3,0,mouseover,1div#start-message.popover-content->h3#start-here-message.popover-title,22,div#start-message.popover-content,h3#start-here-message.popover-title,1,21,11,0,mouseover,1h3#start-here-message.popover-title->div#start-message.popover-content,23,h3#start-here-message.popover-title,div#start-message.popover-content,1,24,11,0,mouseover,1div#start-message.popover-content->p#start-message-text,26,div#start-message.popover-content,p#start-message-text,1,25,11,0,mouseover,1p#start-message-text->div#start-message.popover-content,27,p#start-message-text,div#start-message.popover-content,1,28,12,0,mouseover,1div#start-message.popover-content->div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,30,div#start-message.popover-content,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,1,29,11,0,mouseover,1div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded->h3#start-here-message.popover-title,31,div#gridster -div.ng-scope gridster gridster-desktop gridster-loaded,h3#start-here-message.popover-title,1,32,6,1,click,1h3#start-here-message.popover-title->div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,33,h3#start-here-message.popover-title,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,1,34,11,0,mouseover,1div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded->div#neon-dashboard.container,35,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,div#neon-dashboard.container,1,36,6,0,mouseover,1div#neon-dashboard.container->li.dropdown,38,div#neon-dashboard.container,li.dropdown,1,37,5,0,mouseover,1li.dropdown->a#dataset-dropdown-link.dropdown-toggle primary ng-binding,39,li.dropdown,a#dataset-dropdown-link.dropdown-toggle primary ng-binding,1,40,10,0,mouseover,1a#dataset-dropdown-link.dropdown-toggle primary ng-binding->ul.dropdown-menu,41,a#dataset-dropdown-link.dropdown-toggle primary ng-binding,ul.dropdown-menu,1,42 ,11,1,click,1ul.dropdown-menu->a#select-preset-database.ng-binding,44,ul.dropdown-menu,a#select-preset-database.ng-binding,1,43,11,0,mouseover,1a#select-preset-database.ng-binding->a#dataset-dropdown-link.dropdown-toggle primary ng-binding,45,a#select-preset-database.ng-binding,a#dataset-dropdown-link.dropdown-toggle primary ng-binding,1,46,13,1,mouseover,1a#dataset-dropdown-link.dropdown-toggle primary ng-binding->a#select-preset-database.ng-binding,48,a#dataset-dropdown-link.dropdown-toggle primary ng-binding,a#select-preset-database.ng-binding,1,47,11,1,blur,1a#select-preset-database.ng-binding->div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,49,a#select-preset-database.ng-binding,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,1,50,13,1,blur,1div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded->div.contract-trigger,51,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,div.contract-trigger,1,52,6,1,mous eover,1div.contract-trigger->div#timeline-selector.timeline-selector-chart,53,div.contract-trigger,div#timeline-selector.timeline-selector-chart,1,54,14,1,scroll,1div#timeline-selector.timeline-selector-chart->div.visualization timelineDirective,56,div#timeline-selector.timeline-selector-chart,div.visualization timelineDirective,1,55,15,0,mouseover,1div.visualization timelineDirective->div.contract-trigger,57,div.visualization timelineDirective,div.contract-trigger,1,58,12,1,mouseover,1div.contract-trigger->rect.[object SVGAnimatedString],60,div.contract-trigger,rect.[object SVGAnimatedString],1,59,17,1,scroll,1rect.[object SVGAnimatedString]->span#move-to-bottom-icon2.glyphicon glyphicon-chevron-down,61,rect.[object SVGAnimatedString],span#move-to-bottom-icon2.glyphicon glyphicon-chevron-down,1,62,19,0,mouseover,1span#move-to-bottom-icon2.glyphicon glyphicon-chevron-down->rect.[object SVGAnimatedString],64,span#move-to-bottom-icon2.glyphicon glyphicon-chevron-down,rect.[objec t SVGAnimatedString],1,63,13,0,mouseover,1rect.[object SVGAnimatedString]->Window,65,rect.[object SVGAnimatedString],Window,1,66,18,1,mouseover,1Window->div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,68,Window,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,1,67,1,1,resize,1div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded->rect.[object SVGAnimatedString],70,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,rect.[object SVGAnimatedString],1,69,6,0,mouseover,1rect.[object SVGAnimatedString]->div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,71,rect.[object SVGAnimatedString],div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,1,72,18,0,mouseover,1div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded->svg#OpenLayers_Layer_Vector_RootContainer_49_svgRoot.[object SVGAnimatedString],74,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,svg#Ope nLayers_Layer_Vector_RootContainer_49_svgRoot.[object SVGAnimatedString],1,73,6,0,mouseover,1svg#OpenLayers_Layer_Vector_RootContainer_49_svgRoot.[object SVGAnimatedString]->rect.[object SVGAnimatedString],75,svg#OpenLayers_Layer_Vector_RootContainer_49_svgRoot.[object SVGAnimatedString],rect.[object SVGAnimatedString],1,76,17,0,mouseover,1rect.[object SVGAnimatedString]->div#visualization-header.text-container headers-container,77,rect.[object SVGAnimatedString],div#visualization-header.text-container headers-container,1,78,19,0,mouseover,1div#visualization-header.text-container headers-container->div#widget-title-container.text-container options-container,80,div#visualization-header.text-container headers-container,div#widget-title-container.text-container options-container,1,79,13,0,mouseover,1div#widget-title-container.text-container options-container->a#add-visualization-link.collapsed dropdown-toggle primary,82,div#widget-title-container.text-container options-container,a# add-visualization-link.collapsed dropdown-toggle primary,1,81,13,0,mouseover,1a#add-visualization-link.collapsed dropdown-toggle primary->li.dropdown,83,a#add-visualization-link.collapsed dropdown-toggle primary,li.dropdown,1,84,11,0,mouseover,1li.dropdown->a#dataset-dropdown-link.dropdown-toggle primary ng-binding,85,li.dropdown,a#dataset-dropdown-link.dropdown-toggle primary ng-binding,1,86,10,0,mouseover,1a#dataset-dropdown-link.dropdown-toggle primary ng-binding->div.visualization-drag-handle,87,a#dataset-dropdown-link.dropdown-toggle primary ng-binding,div.visualization-drag-handle,1,88,11,0,mouseover,1div.visualization-drag-handle->div#widget-title-text.header text pull-left ng-binding,90,div.visualization-drag-handle,div#widget-title-text.header text pull-left ng-binding,1,89,10,0,mouseover,1div#widget-title-text.header text pull-left ng-binding->span.ng-binding,91,div#widget-title-text.header text pull-left ng-binding,span.ng-binding,1,92,14,0,mouseover,1span.ng-bindin g->svg.[object SVGAnimatedString],94,span.ng-binding,svg.[object SVGAnimatedString],1,93,17,0,mouseover,1svg.[object SVGAnimatedString]->rect.[object SVGAnimatedString],95,svg.[object SVGAnimatedString],rect.[object SVGAnimatedString],1,96,16,0,mouseover,1rect.[object SVGAnimatedString]->div.ng-scope superclass ng-isolate-scope,97,rect.[object SVGAnimatedString],div.ng-scope superclass ng-isolate-scope,1,98,19,0,mouseover,1div.ng-scope superclass ng-isolate-scope->div.visualization lineChartDirective,99,div.ng-scope superclass ng-isolate-scope,div.visualization lineChartDirective,1,100,10,0,mouseover,1div.visualization lineChartDirective->div#visualization-header.text-container headers-container,102,div.visualization lineChartDirective,div#visualization-header.text-container headers-container,1,101,12,0,mouseover,1div#visualization-header.text-container headers-container->rect.[object SVGAnimatedString],104,div#visualization-header.text-container headers-container,rect.[object SVGAnimatedString],1,103,13,0,mouseover,1rect.[object SVGAnimatedString]->Window,105,rect.[object SVGAnimatedString],Window,1,106,18,1,mouseover,1Window->div.ng-scope superclass ng-isolate-scope,108,Window,div.ng-scope superclass ng-isolate-scope,1,107,1,1,focus,1div.ng-scope superclass ng-isolate-scope->svg#OpenLayers_Layer_Vector_RootContainer_49_svgRoot.[object SVGAnimatedString],110,div.ng-scope superclass ng-isolate-scope,svg#OpenLayers_Layer_Vector_RootContainer_49_svgRoot.[object SVGAnimatedString],1,109,10,0,mouseover,1svg#OpenLayers_Layer_Vector_RootContainer_49_svgRoot.[object SVGAnimatedString]->ul,111,svg#OpenLayers_Layer_Vector_RootContainer_49_svgRoot.[object SVGAnimatedString],ul,1,112,17,1,mouseover,1ul->div.expand-trigger,113,ul,div.expand-trigger,1,114,7,1,click,1div.expand-trigger->div#widget-title-container.text-container options-container,116,div.expand-trigger,div#widget-title-container.text-container options-container,1,115,18,1,scroll,1div#widget-title -container.text-container options-container->span#options-icon.icon-Options_34x34 neon-sprite,118,div#widget-title-container.text-container options-container,span#options-icon.icon-Options_34x34 neon-sprite,1,117,13,0,mouseover,1span#options-icon.icon-Options_34x34 neon-sprite->div#open-options-dropdown.dropdown pull-right,120,span#options-icon.icon-Options_34x34 neon-sprite,div#open-options-dropdown.dropdown pull-right,1,119,10,0,mouseover,1div#open-options-dropdown.dropdown pull-right->div.expand-trigger,121,div#open-options-dropdown.dropdown pull-right,div.expand-trigger,1,122,8,1,mouseover,1div.expand-trigger->div#filter-dropdown-list.dropdown filter-tray-filters,124,div.expand-trigger,div#filter-dropdown-list.dropdown filter-tray-filters,1,123,18,1,scroll,1div#filter-dropdown-list.dropdown filter-tray-filters->a#filter-dropdown-list-link.dropdown-toggle navbar-text,125,div#filter-dropdown-list.dropdown filter-tray-filters,a#filter-dropdown-list-link.dropdown-toggle navbar-t ext,1,126,9,0,mouseover,1a#filter-dropdown-list-link.dropdown-toggle navbar-text->span#filter-dropdown-text.ng-binding,128,a#filter-dropdown-list-link.dropdown-toggle navbar-text,span#filter-dropdown-text.ng-binding,1,127,10,0,mouseover,1span#filter-dropdown-text.ng-binding->a#filter-dropdown-list-link.dropdown-toggle navbar-text,129,span#filter-dropdown-text.ng-binding,a#filter-dropdown-list-link.dropdown-toggle navbar-text,1,130,11,0,mouseover,1a#filter-dropdown-list-link.dropdown-toggle navbar-text->span.caret,132,a#filter-dropdown-list-link.dropdown-toggle navbar-text,span.caret,1,131,10,0,mouseover,1span.caret->a#filter-dropdown-list-link.dropdown-toggle navbar-text,133,span.caret,a#filter-dropdown-list-link.dropdown-toggle navbar-text,1,134,11,0,mouseover,1a#filter-dropdown-list-link.dropdown-toggle navbar-text->div#filter-dropdown-list.dropdown filter-tray-filters,136,a#filter-dropdown-list-link.dropdown-toggle navbar-text,div#filter-dropdown-list.dropdown filter-tray-fi lters,1,135,10,0,mouseover,1div#filter-dropdown-list.dropdown filter-tray-filters->a#filter-dropdown-list-link.dropdown-toggle navbar-text,137,div#filter-dropdown-list.dropdown filter-tray-filters,a#filter-dropdown-list-link.dropdown-toggle navbar-text,1,138,9,0,mouseover,1a#filter-dropdown-list-link.dropdown-toggle navbar-text->span.caret,140,a#filter-dropdown-list-link.dropdown-toggle navbar-text,span.caret,1,139,10,0,mouseover,1span.caret->a#filter-dropdown-list-link.dropdown-toggle navbar-text,141,span.caret,a#filter-dropdown-list-link.dropdown-toggle navbar-text,1,142,11,1,click,1a#filter-dropdown-list-link.dropdown-toggle navbar-text->div#filter-dropdown-list.dropdown filter-tray-filters open,144,a#filter-dropdown-list-link.dropdown-toggle navbar-text,div#filter-dropdown-list.dropdown filter-tray-filters open,1,143,10,0,mouseover,1div#filter-dropdown-list.dropdown filter-tray-filters open->ul#filter-dropdown-menu.dropdown-menu,145,div#filter-dropdown-list.dropdown filter- tray-filters open,ul#filter-dropdown-menu.dropdown-menu,1,146,9,0,mouseover,1ul#filter-dropdown-menu.dropdown-menu->li#filter-dropdown-item.filter-tray-item filter-tray-filter ng-scope,148,ul#filter-dropdown-menu.dropdown-menu,li#filter-dropdown-item.filter-tray-item filter-tray-filter ng-scope,1,147,10,0,mouseover,1li#filter-dropdown-item.filter-tray-item filter-tray-filter ng-scope->span#filter-item-text.filter-label ng-binding,150,li#filter-dropdown-item.filter-tray-item filter-tray-filter ng-scope,span#filter-item-text.filter-label ng-binding,1,149,11,0,mouseover,1span#filter-item-text.filter-label ng-binding->li#filter-dropdown-item.filter-tray-item filter-tray-filter ng-scope,151,span#filter-item-text.filter-label ng-binding,li#filter-dropdown-item.filter-tray-item filter-tray-filter ng-scope,1,152,12,0,mouseover,1li#filter-dropdown-item.filter-tray-item filter-tray-filter ng-scope->div#open-options-dropdown.dropdown pull-right,154,li#filter-dropdown-item.filter-tray-item filter-tray-filter ng-scope,div#open-options-dropdown.dropdown pull-right,1,153,11,0,mouseover,1div#open-options-dropdown.dropdown pull-right->a#options-dropdown.dropdown-toggle navbar-text,155,div#open-options-dropdown.dropdown pull-right,a#options-dropdown.dropdown-toggle navbar-text,1,156,8,0,mouseover,1a#options-dropdown.dropdown-toggle navbar-text->span#options-text,157,a#options-dropdown.dropdown-toggle navbar-text,span#options-text,1,158,9,0,mouseover,1span#options-text->a#options-dropdown.dropdown-toggle navbar-text,160,span#options-text,a#options-dropdown.dropdown-toggle navbar-text,1,159,10,0,mouseover,1a#options-dropdown.dropdown-toggle navbar-text->span#options-text,161,a#options-dropdown.dropdown-toggle navbar-text,span#options-text,1,162,9,1,click,1span#options-text->a#export-format-text.unselectable,164,span#options-text,a#export-format-text.unselectable,1,163,10,0,mouseover,1a#export-format-text.unselectable->li#export-format-options,166,a#export-format-text.un selectable,li#export-format-options,1,165,11,0,mouseover,1li#export-format-options->label#export-format-btn.btn btn-default ng-scope,167,li#export-format-options,label#export-format-btn.btn btn-default ng-scope,1,168,10,0,mouseover,1label#export-format-btn.btn btn-default ng-scope->li#export-format-options,170,label#export-format-btn.btn btn-default ng-scope,li#export-format-options,1,169,12,0,mouseover,1li#export-format-options->li#export-all-visualizations,171,li#export-format-options,li#export-all-visualizations,1,172,10,0,mouseover,1li#export-all-visualizations->button#export-all-visualizations-btn.btn btn-default,174,li#export-all-visualizations,button#export-all-visualizations-btn.btn btn-default,1,173,10,0,mouseover,1button#export-all-visualizations-btn.btn btn-default->ul#expanded-options-dropdown.dropdown-menu,175,button#export-all-visualizations-btn.btn btn-default,ul#expanded-options-dropdown.dropdown-menu,1,176,11,0,mouseover,1ul#expanded-options-dropdown.dropdown- menu->a#theme-selection-label.unselectable,178,ul#expanded-options-dropdown.dropdown-menu,a#theme-selection-label.unselectable,1,177,9,0,mouseover,1a#theme-selection-label.unselectable->ul#expanded-options-dropdown.dropdown-menu,179,a#theme-selection-label.unselectable,ul#expanded-options-dropdown.dropdown-menu,1,180,11,0,mouseover,1ul#expanded-options-dropdown.dropdown-menu->select#select-theme.select-theme form-control navbar-indented ng-pristine ng-untouched ng-valid,182,ul#expanded-options-dropdown.dropdown-menu,select#select-theme.select-theme form-control navbar-indented ng-pristine ng-untouched ng-valid,1,181,9,0,mouseover,1select#select-theme.select-theme form-control navbar-indented ng-pristine ng-untouched ng-valid->ul#expanded-options-dropdown.dropdown-menu,183,select#select-theme.select-theme form-control navbar-indented ng-pristine ng-untouched ng-valid,ul#expanded-options-dropdown.dropdown-menu,1,184,11,0,mouseover,1ul#expanded-options-dropdown.dropdown-menu->a#sav e-state-button,186,ul#expanded-options-dropdown.dropdown-menu,a#save-state-button,1,185,9,0,mouseover,1a#save-state-button->a#load-state-button,187,a#save-state-button,a#load-state-button,1,188,11,0,mouseover,1a#load-state-button->a#options-dropdown.dropdown-toggle navbar-text,190,a#load-state-button,a#options-dropdown.dropdown-toggle navbar-text,1,189,11,1,focus,1a#options-dropdown.dropdown-toggle navbar-text->a#load-state-button,192,a#options-dropdown.dropdown-toggle navbar-text,a#load-state-button,1,191,9,1,blur,1a#load-state-button->svg#OpenLayers_Layer_Vector_RootContainer_49_svgRoot.[object SVGAnimatedString],194,a#load-state-button,svg#OpenLayers_Layer_Vector_RootContainer_49_svgRoot.[object SVGAnimatedString],1,193,11,1,blur,1svg#OpenLayers_Layer_Vector_RootContainer_49_svgRoot.[object SVGAnimatedString]->div#loadStateModal.load-state modal fade neon-popup in,196,svg#OpenLayers_Layer_Vector_RootContainer_49_svgRoot.[object SVGAnimatedString],div#loadStateModal.load-stat e modal fade neon-popup in,1,195,17,0,mouseover,1div#loadStateModal.load-state modal fade neon-popup in->div#load-state-footer.modal-footer,197,div#loadStateModal.load-state modal fade neon-popup in,div#load-state-footer.modal-footer,1,198,9,1,focus,1div#load-state-footer.modal-footer->div#load-state-body.modal-body,199,div#load-state-footer.modal-footer,div#load-state-body.modal-body,1,200,12,0,mouseover,1div#load-state-body.modal-body->select#select-state-to-load.form-control ng-pristine ng-untouched ng-valid,202,div#load-state-body.modal-body,select#select-state-to-load.form-control ng-pristine ng-untouched ng-valid,1,201,12,0,mouseover,1select#select-state-to-load.form-control ng-pristine ng-untouched ng-valid->div#loadStateModal.load-state modal fade neon-popup in,204,select#select-state-to-load.form-control ng-pristine ng-untouched ng-valid,div#loadStateModal.load-state modal fade neon-popup in,1,203,14,1,mouseover,1div#loadStateModal.load-state modal fade neon-popup in-> select#select-state-to-load.form-control ng-pristine ng-untouched ng-valid,205,div#loadStateModal.load-state modal fade neon-popup in,select#select-state-to-load.form-control ng-pristine ng-untouched ng-valid,1,206,9,1,blur,1select#select-state-to-load.form-control ng-pristine ng-untouched ng-valid->select#select-state-to-load.form-control ng-untouched ng-valid ng-dirty ng-valid-parse,208,select#select-state-to-load.form-control ng-pristine ng-untouched ng-valid,select#select-state-to-load.form-control ng-untouched ng-valid ng-dirty ng-valid-parse,1,207,14,1,input,1select#select-state-to-load.form-control ng-untouched ng-valid ng-dirty ng-valid-parse->div#loadStateModal.load-state modal fade neon-popup in,209,select#select-state-to-load.form-control ng-untouched ng-valid ng-dirty ng-valid-parse,div#loadStateModal.load-state modal fade neon-popup in,1,210,14,1,click,1div#loadStateModal.load-state modal fade neon-popup in->div#load-state-footer.modal-footer,211,div#loadStateModal.l oad-state modal fade neon-popup in,div#load-state-footer.modal-footer,1,212,9,0,mouseover,1div#load-state-footer.modal-footer->button#cancel-btn.btn btn-alert,214,div#load-state-footer.modal-footer,button#cancel-btn.btn btn-alert,1,213,12,0,mouseover,1button#cancel-btn.btn btn-alert->div#load-state-footer.modal-footer,215,button#cancel-btn.btn btn-alert,div#load-state-footer.modal-footer,1,216,13,0,mouseover,1div#load-state-footer.modal-footer->button#load-btn.btn btn-success,218,div#load-state-footer.modal-footer,button#load-btn.btn btn-success,1,217,12,0,mouseover,1button#load-btn.btn btn-success->select#select-state-to-load.form-control ng-untouched ng-valid ng-dirty ng-valid-parse,219,button#load-btn.btn btn-success,select#select-state-to-load.form-control ng-untouched ng-valid ng-dirty ng-valid-parse,1,220,13,1,mouseover,1select#select-state-to-load.form-control ng-untouched ng-valid ng-dirty ng-valid-parse->button#load-btn.btn btn-success,221,select#select-state-to-load.f orm-control ng-untouched ng-valid ng-dirty ng-valid-parse,button#load-btn.btn btn-success,1,222,14,1,blur,1button#load-btn.btn btn-success->div.contract-trigger,223,button#load-btn.btn btn-success,div.contract-trigger,1,224,13,1,click,1div.contract-trigger->div#loadStateModal.load-state modal fade neon-popup,226,div.contract-trigger,div#loadStateModal.load-state modal fade neon-popup,1,225,14,1,scroll,1div#loadStateModal.load-state modal fade neon-popup->button#load-btn.btn btn-success,227,div#loadStateModal.load-state modal fade neon-popup,button#load-btn.btn btn-success,1,228,9,1,mouseover,1button#load-btn.btn btn-success->div.visualization timelineDirective,229,button#load-btn.btn btn-success,div.visualization timelineDirective,1,230,13,1,blur,1div.visualization timelineDirective->div.expand-trigger,231,div.visualization timelineDirective,div.expand-trigger,1,232,12,1,mouseover,1div.expand-trigger->rect.[object SVGAnimatedString],234,div.expand-trigger,rect.[object SVGAnima tedString],1,233,18,1,scroll,1rect.[object SVGAnimatedString]->div.expand-trigger,235,rect.[object SVGAnimatedString],div.expand-trigger,1,236,19,1,mouseover,1div.expand-trigger->div#widget-title-container.text-container options-container,238,div.expand-trigger,div#widget-title-container.text-container options-container,1,237,18,1,scroll,1div#widget-title-container.text-container options-container->rect.[object SVGAnimatedString],240,div#widget-title-container.text-container options-container,rect.[object SVGAnimatedString],1,239,13,0,mouseover,1rect.[object SVGAnimatedString]->div.gridster-item-resizable-handler handle-e,241,rect.[object SVGAnimatedString],div.gridster-item-resizable-handler handle-e,1,242,18,0,mouseover,1div.gridster-item-resizable-handler handle-e->div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,244,div.gridster-item-resizable-handler handle-e,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,1,243,9,0,mouseover,1div#gr idster-div.ng-scope gridster gridster-desktop gridster-loaded->div.gridster-item-resizable-handler handle-w,245,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,div.gridster-item-resizable-handler handle-w,1,246,6,0,mouseover,1div.gridster-item-resizable-handler handle-w->div.ng-scope superclass ng-isolate-scope,248,div.gridster-item-resizable-handler handle-w,div.ng-scope superclass ng-isolate-scope,1,247,9,0,mouseover,1div.ng-scope superclass ng-isolate-scope->#document,249,div.ng-scope superclass ng-isolate-scope,#document,1,250,10,1,wheel,1#document->svg#OpenLayers_Layer_Vector_RootContainer_4126_svgRoot.[object SVGAnimatedString],252,#document,svg#OpenLayers_Layer_Vector_RootContainer_4126_svgRoot.[object SVGAnimatedString],1,251,2,1,scroll,1svg#OpenLayers_Layer_Vector_RootContainer_4126_svgRoot.[object SVGAnimatedString]->svg#plot.[object SVGAnimatedString],253,svg#OpenLayers_Layer_Vector_RootContainer_4126_svgRoot.[object SVGAnimatedString],svg#plot.[ob ject SVGAnimatedString],1,254,17,0,mouseover,1svg#plot.[object SVGAnimatedString]->#document,256,svg#plot.[object SVGAnimatedString],#document,1,255,15,1,wheel,1#document->div#filter-builder-inputs.filter neon-well form-inline,258,#document,div#filter-builder-inputs.filter neon-well form-inline,1,257,2,1,scroll,1div#filter-builder-inputs.filter neon-well form-inline->#document,260,div#filter-builder-inputs.filter neon-well form-inline,#document,1,259,11,1,wheel,1#document->div.ng-scope ng-isolate-scope filter-directive,262,#document,div.ng-scope ng-isolate-scope filter-directive,1,261,2,1,scroll,1div.ng-scope ng-isolate-scope filter-directive->div.ng-scope superclass ng-isolate-scope,263,div.ng-scope ng-isolate-scope filter-directive,div.ng-scope superclass ng-isolate-scope,1,264,10,1,wheel,1div.ng-scope superclass ng-isolate-scope->div.ag-body-viewport,266,div.ng-scope superclass ng-isolate-scope,div.ag-body-viewport,1,265,10,0,mouseover,1div.ag-body-viewport->div#neon-dashb oard.container,267,div.ag-body-viewport,div#neon-dashboard.container,1,268,23,0,mouseover,1div#neon-dashboard.container->div.ag-body-viewport,270,div#neon-dashboard.container,div.ag-body-viewport,1,269,5,0,mouseover,1div.ag-body-viewport->div.ag-cell ag-cell-no-focus cell-col-3 ag-cell-value,271,div.ag-body-viewport,div.ag-cell ag-cell-no-focus cell-col-3 ag-cell-value,1,272,23,0,mouseover,1div.ag-cell ag-cell-no-focus cell-col-3 ag-cell-value->#document,273,div.ag-cell ag-cell-no-focus cell-col-3 ag-cell-value,#document,1,274,26,1,wheel,1#document->div.ag-cell ag-cell-no-focus cell-col-3 ag-cell-value,276,#document,div.ag-cell ag-cell-no-focus cell-col-3 ag-cell-value,1,275,2,1,scroll,1div.ag-cell ag-cell-no-focus cell-col-3 ag-cell-value->span#open/close-options-menu.text pull-left ng-binding,277,div.ag-cell ag-cell-no-focus cell-col-3 ag-cell-value,span#open/close-options-menu.text pull-left ng-binding,1,278,26,0,mouseover,1span#open/close-options-menu.text pull-left ng-bin ding->div.ng-scope superclass ng-isolate-scope,280,span#open/close-options-menu.text pull-left ng-binding,div.ng-scope superclass ng-isolate-scope,1,279,17,0,mouseover,1div.ng-scope superclass ng-isolate-scope->svg#plot.[object SVGAnimatedString],281,div.ng-scope superclass ng-isolate-scope,svg#plot.[object SVGAnimatedString],1,282,10,0,mouseover,1svg#plot.[object SVGAnimatedString]->rect.[object SVGAnimatedString],284,svg#plot.[object SVGAnimatedString],rect.[object SVGAnimatedString],1,283,15,0,mouseover,1rect.[object SVGAnimatedString]->svg#plot.[object SVGAnimatedString],285,rect.[object SVGAnimatedString],svg#plot.[object SVGAnimatedString],1,286,17,0,mouseover,1svg#plot.[object SVGAnimatedString]->div.gridster-item-resizable-handler handle-s,288,svg#plot.[object SVGAnimatedString],div.gridster-item-resizable-handler handle-s,1,287,15,0,mouseover,1div.gridster-item-resizable-handler handle-s->div.visualization-drag-handle,289,div.gridster-item-resizable-handler handle-s,di v.visualization-drag-handle,1,290,9,0,mouseover,1div.visualization-drag-handle->div#widget-title-container.text-container options-container,292,div.visualization-drag-handle,div#widget-title-container.text-container options-container,1,291,10,0,mouseover,1div#widget-title-container.text-container options-container->div.visualization dataTableDirective,293,div#widget-title-container.text-container options-container,div.visualization dataTableDirective,1,294,13,0,mouseover,1div.visualization dataTableDirective->div.ag-header-cell-label,296,div.visualization dataTableDirective,div.ag-header-cell-label,1,295,12,0,mouseover,1div.ag-header-cell-label->div.ng-scope superclass ng-isolate-scope,298,div.ag-header-cell-label,div.ng-scope superclass ng-isolate-scope,1,297,25,0,mouseover,1div.ng-scope superclass ng-isolate-scope->div.ag-cell ag-cell-no-focus cell-col-1 ag-cell-value,300,div.ng-scope superclass ng-isolate-scope,div.ag-cell ag-cell-no-focus cell-col-1 ag-cell-value,1,299,10,0 ,mouseover,1div.ag-cell ag-cell-no-focus cell-col-1 ag-cell-value->span.legend-text ng-binding,301,div.ag-cell ag-cell-no-focus cell-col-1 ag-cell-value,span.legend-text ng-binding,1,302,26,0,mouseover,1span.legend-text ng-binding->rect.[object SVGAnimatedString],304,span.legend-text ng-binding,rect.[object SVGAnimatedString],1,303,17,0,mouseover,1rect.[object SVGAnimatedString]->svg#OpenLayers_Layer_Vector_RootContainer_4126_svgRoot.[object SVGAnimatedString],305,rect.[object SVGAnimatedString],svg#OpenLayers_Layer_Vector_RootContainer_4126_svgRoot.[object SVGAnimatedString],1,306,18,0,mouseover,1svg#OpenLayers_Layer_Vector_RootContainer_4126_svgRoot.[object SVGAnimatedString]->div#navbar-container.container,308,svg#OpenLayers_Layer_Vector_RootContainer_4126_svgRoot.[object SVGAnimatedString],div#navbar-container.container,1,307,17,0,mouseover,1 \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-senssoft-tap/blob/607675ba/Sankey/csvSankey-v4/sankey825short.csv ---------------------------------------------------------------------- diff --git a/Sankey/csvSankey-v4/sankey825short.csv b/Sankey/csvSankey-v4/sankey825short.csv new file mode 100644 index 0000000..b6ddc0f --- /dev/null +++ b/Sankey/csvSankey-v4/sankey825short.csv @@ -0,0 +1 @@ +sequenceID,target,sourceName,targetName,value,source,pathLength,typeChange,type,targetChangeWindow->html,3,Window,html,1,2,1,1,focus,1#document->div.expand-trigger,0,#document,div.expand-trigger,1,1,1,1,load,1html->Window,5,html,Window,1,6,3,1,mouseover,1div.expand-trigger->div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,7,div.expand-trigger,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,1,4,8,1,scroll,1Window->html,9,Window,html,1,8,1,1,blur,1div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded->html,9,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,html,1,10,6,0,mouseover,1html->body.ng-scope,11,html,body.ng-scope,1,12,3,1,mouseover,1body.ng-scope->div.expand-trigger,13,body.ng-scope,div.expand-trigger,1,14,4,1,keydown,1div.expand-trigger->Window,16,div.expand-trigger,Window,1,15,8,1,scroll,1Window->html,18,Window,html,1,17,1,1,resize,1html->div#start-message.popover-content,19,html,div#start-me ssage.popover-content,1,20,3,0,mouseover,1div#start-message.popover-content->h3#start-here-message.popover-title,22,div#start-message.popover-content,h3#start-here-message.popover-title,1,21,11,0,mouseover,1h3#start-here-message.popover-title->div#start-message.popover-content,23,h3#start-here-message.popover-title,div#start-message.popover-content,1,24,11,0,mouseover,1div#start-message.popover-content->p#start-message-text,26,div#start-message.popover-content,p#start-message-text,1,25,11,0,mouseover,1p#start-message-text->div#start-message.popover-content,27,p#start-message-text,div#start-message.popover-content,1,28,12,0,mouseover,1div#start-message.popover-content->div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,30,div#start-message.popover-content,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,1,29,11,0,mouseover,1div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded->h3#start-here-message.popover-title,31,div#gridster -div.ng-scope gridster gridster-desktop gridster-loaded,h3#start-here-message.popover-title,1,32,6,1,click,1h3#start-here-message.popover-title->div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,33,h3#start-here-message.popover-title,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,1,34,11,0,mouseover,1div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded->div#neon-dashboard.container,35,div#gridster-div.ng-scope gridster gridster-desktop gridster-loaded,div#neon-dashboard.container,1,36,6,0,mouseover,1div#neon-dashboard.container->li.dropdown,38,div#neon-dashboard.container,li.dropdown,1,37,5,0,mouseover,1li.dropdown->a#dataset-dropdown-link.dropdown-toggle primary ng-binding,39,li.dropdown,a#dataset-dropdown-link.dropdown-toggle primary ng-binding,1,40,10,0,mouseover,1a#dataset-dropdown-link.dropdown-toggle primary ng-binding->ul.dropdown-menu,41,a#dataset-dropdown-link.dropdown-toggle primary ng-binding,ul.dropdown-menu,1,42 ,11,1,click,1ul.dropdown-menu->a#select-preset-database.ng-binding,44,ul.dropdown-menu,a#select-preset-database.ng-binding,1,43,11,0,mouseover,1a#select-preset-database.ng-binding->a#dataset-dropdown-link.dropdown-toggle primary ng-binding,45,a#select-preset-database.ng-binding,a#dataset-dropdown-link.dropdown-toggle primary ng-binding,1,46,13,1,mouseover,1 \ No newline at end of file