greuler 是图形理论可视化工具,基于 D3 和 WebCola。greuler 允许使用一个简单的 API 创建和操作图形。
引入资源:
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.js"></script> <script src="http://marvl.infotech.monash.edu/webcola/cola.v3.min.js"></script>
安装:
bower install greuler
插入到项目中:
<script src="bower_components/greuler/dist/greuler.js"></script>
欧拉轨迹
'use strict'; window.d3.json('scripts/examples/data/eulerian-graph.json', function (error, data) { var instance = greuler({ target: '#eulerian-trail', width: 600, height: 600, animationTime: 500, data: data }).update(); window.examples['eulerian-trail'] = function () { var greuler = window.greuler; var player = new greuler.player.Generator(instance); player.run(function *algorithm(instance) { var stack = []; var trail = []; function eulerianTrail(u) { stack.push(u); var edges = instance.graph.getIncidentEdges({ id: u }); for (var i = 0; i < edges.length; i += 1) { var e = edges[i]; var next = e.target.id === u ? e.source.id : e.target.id; if (e.used) { continue; } e.used = true; eulerianTrail(next); } trail.push(stack.pop()); } eulerianTrail(0); // node traversal is given by trail for (var i = 0; i < trail.length; i += 1) { yield function () { instance.selector.traverseAllEdgesBetween( { source: trail[i], target: trail[i + 1] } ); }; } }); }; });
广度优先搜索:
'use strict'; (function () { var greuler = window.greuler; var instance = greuler({ target: '#bfs', width: 600, height: 600, animationTime: 500, data: greuler.Graph.random({ connected: true }) }).update(); window.examples.bfs = function () { var player = new greuler.player.Generator(instance); player.run(function *algorithm(instance) { function *bfs(source) { // queue var distance = []; var q = []; var parent = []; function highlight(id, visit) { return function () { var node = instance.graph.getNode({ id: id }); node.topRightLabel = distance[id]; instance.selector.highlightNode({ id: id }); if (visit) { instance.selector.getNode({ id: id }) .transition() .attr('fill', 'black'); } instance.update({skipLayout: true}); }; } distance[source] = 0; q.push(source); while (q.length) { var top = q.shift(); var adjacent = instance.graph.getAdjacentNodes({ id: top }); yield highlight(top, true); for (var i = 0; i < adjacent.length; i += 1) { var next = adjacent[i].id; if (next === parent[top]) { continue; } if (typeof distance[next] === 'undefined') { distance[next] = distance[top] + 1; parent[next] = top; q.push(next); yield function () { instance.selector.traverseAllEdgesBetween( { source: top, target: next } ); }; yield highlight(next); } else { yield function () { instance.selector.traverseAllEdgesBetween( { source: top, target: next }, { keepStroke: false } ) .transition() .attr('opacity', 0.3); }; } } } } yield *bfs(0); }); }; })();
要创建可视化视图: 点击左侧导航栏的 Visualize 。 点击 Create new visualization 按钮或 + 按钮。 选择视图类型: 基础图形 Line, Area and Bar charts 在X/Y图中比较两个不同的序列。 Heat maps 使用矩阵的渐变单元格. Pie chart 显示每个来源的占比。 数据 Data table 显示一个组合聚合的原始数据。 Met
TensorFlow 图表计算强大而又复杂,图表可视化在理解和调试时显得非常有帮助。 下面是一个运作时的可式化例子。 "一个TensorFlow图表的可视化") 一个TensorFlow图表的可视化。 为了显示自己的图表,需将 TensorBoard 指向此工作的日志目录并运行,点击图表顶部窗格的标签页,然后在左上角的菜单中选择合适的运行。想要深入学习关于如何运行 TensorBoard 以及如何
我正在编写一个程序,它基本上处理一个子图DAG,即图是一个有向无环图,图的每个节点都是一个子图。例如,对于DAG中的边,节点是三角形的子图,节点是四个团的子图。边表示通过增加一个子图顶点和三个子图边从三角形扩展到四个团。 出于多种目的,我想将这个子图DAG可视化,即可视化可以同时显示DAG的整个结构和所有节点的子图。另外,如果它也能显示顶点和边的性质,那就更好了。 对于DAG边缘,节点位于节点之上
TensorFlow 图表计算强大而又复杂,图表可视化在理解和调试时显得非常有帮助。 下面是一个运作时的可式化例子。 "一个TensorFlow图表的可视化") 一个TensorFlow图表的可视化。 为了显示自己的图表,需将 TensorBoard 指向此工作的日志目录并运行,点击图表顶部窗格的标签页,然后在左上角的菜单中选择合适的运行。想要深入学习关于如何运行 TensorBoard 以及如何
有一些工具可以帮助您在几分钟内可视化所有数据。这些工具已经存在多年并且已经很成熟; 只需按照您的要求选择正确的数据可视化工具即可。 数据可视化用于与数据交互。Google,Apple,Facebook和Twitter都更好地询问他们的数据更好的问题,并通过使用数据可视化做出更好的业务决策。 以下常见的十大数据可视化工具: 1. Tableau Tableau是一种数据可视化工具。可以创建图形,图表
Redis是一个超精简的基于内存的键值对数据库(key-value),一般对并发有一定要求的应用都用其储存session,乃至整个数据库。不过它公自带一个最小化的命令行式的数据库管理工具,有时侯使用起来并不方便。不过Github上面已经有了很多图形化的管理工具,而且都针对REDIS做了一些优化,如自动折叠带schema的key等。 Redis Desktop Manager 一款基于Qt5的跨平台