Plug-ins Reference |
Clustering |
Description
Description
Description
Export |
Description
Export plugin for GML format.
This plugin records a Tulip graph structure using the GML File format. This format is the file format used by Graphlet. See www.infosun.fmi.uni-passau.de/Graphlet/GML/ for details.
Glyph |
Description
A 2D glyph.
This glyph draws a textured square using the "viewTexture" node property value. If this property has no value, the square is then colored using the "viewColor" node property value. It is unsensitive to any axis rotation and so always remains displayed in the same position.
Description
A 3D glyph.
This glyph draws a christmas tree special for christmas release of 2008
Description
A 2D glyph.
This glyph draws a textured disc using the "viewTexture" node property value. If this property has no value, the disc is then colored using the "viewColor" node property value.
Description
A 3D glyph.
This glyph draws a textured cone using the "viewTexture" node property value. If this property has no value, the cone is then colored using the "viewColor" node property value.
Description
A 3D glyph.
This glyph draws a textured cube using the "viewTexture" node property value. If this property has no value, the cube is then colored using the "viewColor" node property value.
Description
A 3D glyph.
This glyph draws a transparent cube using the "viewBorderColor" node property value to draw its edges.
Description
A 3D glyph.
This glyph draws an textured a half cylinder - a cylinder whose height is half the one draws by the Cylinder glyph - using the "viewTexture" node property value. If this property has no value, the half cylinder is then colored using the "viewColor" node property value.
Description
A 2D glyph.
This glyph draws a textured hexagone using the "viewTexture" node property value. If this property has no value, the hexagone is then colored using the "viewColor" node property value.
Description
A 2D glyph.
This glyph draws a textured pentagone using the "viewTexture" node property value. If this property has no value, the pentagone is then colored using the "viewColor" node property value.
Description
A 2D glyph.
This glyph draws a textured disc with a circular hole using the "viewTexture" node property value. If this property has no value, the ring is then colored using the "viewColor" node property value.
Description
A 2D glyph.
This glyph draws a rounded box, meaning a rectangle with rounded corners. The box is colored according to the "viewColor" property. It can also be outlined if "viewBorderWidth" is greater than zero. The outline is colored according to the "viewBorderColor" property. Last but not least, it can also be textured according to the "viewTexture" property.
Description
A 3D glyph.
This glyph draws a textured sphere using the "viewTexture" node property value. If this property has no value, the sphere is then colored using the "viewColor" node property value.
Description
A 2D glyph.
This glyph draws a textured square using the "viewTexture" node property value. If this property has no value, the square is then colored using the "viewColor" node property value.
Import |
Description
This plugin enables to import a graph coded with a matrix
File format:
The input format of this plugin is an ascii file where each line represents a row of the matrix. In each row, cells must be separated by a space.
Let M(i,j) be a cell of the matrix :
if i==j we define the value of a node.
if i!=j we define a directed edge between node[i] and node[j]
If M(i,j) is real value (0, .0, -1, -1.0), it is stored in the viewMetric property of the graph.
If M(i,j) is a string, it is stored in the viewLabel property of the graph.
Use & to set the viewMetric and viewLabel properties of a node or edge in the same time. If M(i,j) == @ an edge will be created without value
If M(i,j) == # no edge will be created between node[i] and node[j]
EXEMPLE 1 :
A
# B
# # C
Define a graph with 3 nodes (with labels A B C) and without edge.
EXEMPLE 2 :
A
@ B
@ @ C
Define a simple complete graph with 3 nodes (with labels A B C) and no label (or value) on its edges
EXEMPLE 3 :
A # E & 5
@ B
# @ C
Define a graph with 3 nodes and 3 edges, the edge between A and C is named E and has the value 5
Description
Complete Tree - Import of a complete tree.
This plugin enables to create a complete tree
User can specify the depth and the degree of the tree.
Description
This plugin enables to import a graph coded with in dot format
File format: [ http://www.research.att.com/sw/tools/graphviz/ ]
First (quick) support of the AT&T DOT language
main graph entities are extracted (node/edges)
subgraphs are not already supported
several attributes (node & edge) are supported
based on a modified grammar file available with the graphviz software
this parser can be largely optimized ...
Description
Import a tree representation of a file system directory.
This plugin enables to capture in a tree the full hierarchy of of a given file system directory
Description
Import plugin for GML format.
This plugin imports a graph structure recorded using the GML File format. This format is the file format used by Graphlet. See www.infosun.fmi.uni-passau.de/Graphlet/GML/ for details.
Description
Grid - Import a grid.
This plugin enables to create a grid.
User can specify the connectivity of each nodes in the grid, spacing between nodes and if opposite nodes are connected.
Description
Planar Graph - Import of planer graph.
This plugin enables to create a planar graph
User can specify the number of nodes.
Description
Random Graph - Import of a random graph.
This plugin enables to create a random graph
User can specify the number of nodes and the number of edges of the graph.
Description
Random Simple Graph - Import of a random simple graph.
This plugin enables to create a random simple graph
User can specify the number of nodes and the number of edges of the graph.
Description
Random Tree - Import of a random tree.
This plugin enables to create a random tree
User can specify the minimal/maximal numbers of nodes used to build of the tree.
Description
Random General Tree - Import of a random general tree.
This plugin enables to create a random general tree
User can specify the minimal/maximal number of nodes and the maximal degree.
Description
Grid Approximation - Import of a grid approximation.
This plugin enables to create a gride approximation
User can specify the number of nodes and their average degree.
Layout |
Description
This plug-in implement the bubble tree drawing algorithm first published as:
Bubble Tree Drawing Algorithm :
D. Auber and S. Grivet and J-P Domenger and Guy Melancon,
In International Conference on Computer Vision and Graphics, pages 633-641, september 2004.
HISTORY
07/12/04 Version 0.0.3: Use new Tulip plugin parameter mechanism
16/07/03 Version 0.0.2: Better management of node size
16/05/03 Version 0.0.1: Initial release
This algorithm only works on trees. Let n be the number of nodes, the algorithm complexity is in O(n) or O(nlog(n)), By default O(nlog(n)) algorithm is used, but one can choose the complexity by using the argument (bool)"complexity" (true means O(nlog(n), false O(n)). The algorithm can manage nodes of different size. The SizeProperty "viewSize" is used by default if no parameters are given to the plug-in. The parameter is (SizeProperty*) "node size".
David Auber, S. Grivet University Bordeaux I France: auber@tulip-software.org , grivet@labri.fr
Description
This plugin is an implementation of a circular layout that takes node size into account. It manages size of nodes and use a standard dfs for ordering nodes or search the maximum length cycle.
HISTORY:
25/11/2004 version 0.0.2: size and order 01/12/1999 Version 0.0.1: Initial release
NOTES:
This work on general graphs. Let n be the number of nodes, the algorithm complexity is in O(n). If the search_cycle is enabled, the complexity is exponential (NP-Complete problem !).
AUTHORS:
David Auber and Romain Bourqui University Bordeaux I France: Email: auber@tulip-software.org Daniel Archambault The University of British Columbia: Email: archam@cs.ubc.ca
Description
ConeTreeExtended.h - An implementation of the cone tree layout.
This plugin is an extension of the Cone tree layout algorithm first published as:
A. FJ. Carriere and R. Kazman,
"Interacting with Huge Hierarchies: Beyond Cone Trees",
In Proceedings of InfoViz'95,
IEEE Symposium on Information Visualization
pages 74-78, 1995,
Information about the extension can be found in :
D.Auber, PhD Thesis, "Outils de visualisation de larges structures de donnees", University Bordeaux, december 2002.
HISTORY
01/04/99 Verson 0.0.1: Initial release
This algorithm only works on trees. Let n be the number of nodes, the algorithm complexity is in O(n).
David Auber University Bordeaux I France: Email: auber@tulip-software.org
Description
This plugin is an implementation of a dendrogram, an extended implementation of a "Bio representation" which includes variable orientation and variable node sizelayout.
This works on tree. Let n be the number of nodes, the algorithm complexity is in O(n).
Julien Testut, Antony Durand, Pascal Ollier, Yashvin Nababsing,
Sebastien Leclerc, Thibault Ruchon, Eric Dauchier
University Bordeaux I France
Description
An implementation of a spring-embedder layout.
This plugin is an implementation of the GEM-2d layout algorithm first published as:
A. Frick, A. Ludwig, and H. Mehldau,
"A fast, adaptive layout algorithm for undirected graphs",
In R. Tamassia and I. Tollis (Eds),
Graph Drawing'94,
Volume 894 of Lecture Notes in Computer Science, Springer Verlag, 1995.
HISTORY
The implementation started life as the public-domain code produced by Arne Frick and released at
www.frick-consulting.de/publications.html
The core "embedder" part of the algorithm was used in the implementation of a Java plugin for the CWI "Royere" tool, and then this code was ported to C++ to make the implementation given here.
The embedder algorithm described by Frick involves three phases: insertion, arrangement, and optimization. Only the first two of these phases are included here. Experiments with the Java implementation showed that the optimization phase consumed significantly more time than the first two and produced apparently marginal improvements in the final layout.
As GEM, like other spring-embedder algorithms, is computationally expensive, I have tried to optimize the loops somewhat by storing all necessary node information into two arrays: "GemProp" carries the (scalar) values associated with each node by the layout algorithm, while "Adjacent" is an array of vectors, one vector per node, giving the index (integer) of each node.
The new version has been reimplemented to manage edge length it merges the 3D stuff and removes the use of integers (new CPU do not require it anymore).
David Duke, University of Bath, UK: Email: D.Duke@bath.ac.uk
David Auber,University of Bordeaux, FR: Email: david.auber@labri.fr Version 0.1: 23 July 2001. Version 0.2: September 2006
Description
Description
This plugin is an implementation of a linear Walker's algorithm:
Christoph Buchheim and Michael Junger and Sebastian Leipert, Improving Walker's Algorithm to Run in Linear Time citeseer.ist.psu.edu/buchheim02improving.html
This algorith works on tree. Let n be the number of nodes, the algorithm complexity is in O(n).
Julien Testut, Antony Durand, Pascal Ollier, Yashvin Nababsing,
Sebastien Leclerc, Thibault Ruchon, Eric Dauchier
University Bordeaux I France
Description
This plugin is an implementation of the planar polyline graph drawing algorithm, the mixed model algorithm, first published as:
C. Gutwenger and P. Mutzel,
"Planar Polyline Drawings with Good Angular Resolution",
"Lecture Notes In Computer Science, Vol. 1547"
"Proceedings of the 6th International Symposium on Graph Drawing,"
pages "167--182"
1998
Let n be the number of nodes, the original algorithm complexity is in O(n).
But the implementation of the canonical ordering has not been made in O(n).
This version of the algorithm considers each connected component of the graph, tests if it is planar or not. If not, it computes a planar subgraphs, which is a maximal planar "sub-map". Then an area aware version of Gutwenger and Mutzel 's algorithm is used, and if the connected component was not planar, it adds the "unplanar" edges in 3D. Finally, it uses the Connected Component Packing plugin of Tulip Software to pack the connected components.
Description
SquarifiedTreeMap.h - An implementation of a squarified treemap layout.
This plugin is an implementation of TreeMap and Squarified treemap layout.
Squarified Treemaps :
Bruls, M., Huizing, K., & van Wijk, J. J.
In Proc. of Joint Eurographics and IEEE TCVG Symp. on Visualization
(TCVG 2000) IEEE Press, pp. 33-42.
Shneiderman, B. (March 1991) Tree visualization with treemaps: a 2-d space-filling approach ACM Transactions on Graphics, vol. 11, 1 (Jan. 1992) 92-99. HCIL-91-03, CS-TR-2645, CAR-TR-548
This algorith only works on tree.
1.0.0 complete rewrite, merge treemap and squarified in the same algorithm simplify implementation. The algorithm can be tune to go 2 or 3 time faster however, since the algorithm is fast enough, the code is written to be easily read and maintain.
Auber David
0.0.0
Julien Testut, Antony Durand, Pascal Ollier, Yashvin Nababsing,
Sebastien Leclerc, Thibault Ruchon, Eric Dauchier
University Bordeaux I France
Description
Description
TreeRadial.cpp - An implementation of a radial drawing of trees.
This algorithm is inspired from MoireGraphs: Radial Focus+Context Visualization and Interaction for Graphs with Visual Nodes from T. J. Jankun-Kelly, Kwan-Liu Ma published in IEEE Symposium on Information Visualization (2003)
Description
This plugin is an implementation of the hierarchical tree layout algorithm first published as:
E.M. Reingold and J.S. Tilford,
"Tidier Drawings of Trees",
"IEEE Transactions on Software Engineering"
pages "223--228"
1981
This algorithm only works on trees; so if the graph is not a tree it will be applied on a spanning tree.
Let n be the number of nodes, the algorithm complexity is in O(n).
It extends the original Reingold and Tilford by providing managment of different node size and different edge length.
The algorithm use the (Size)"viewSize" property for element size and the (int)"treeEdgeLength" for the edge length.
Description
This plugin is an implementation of the Tutte layout for 3-Connected graph algorithm first published as:
W.T. Tutte , "How to Draw a Graph", "Proc. London Math. Soc.", "1963", pages 743-768.
Metric |
Description
This plugin is an implementation of betweeness centrality parameter. (see http://en.wikipedia.org/wiki/Centrality#Betweenness_centrality for more details)
Algorithm published by:
U. Brandes,
"A Faster Algorithm for Betweenness Centrality",
"Journal of Mathematical Sociology"
"2001",
volume 25,
pages 163-177
The edge betweeness centrality is also computed, it is described in :
Newman, M. E. J. and Girvan, M.
"Finding and evaluating community structure in networks",
"Physics Reviews E",
"2004",
volume 69
The complexity of the algorithm is O(|V| * |E|) in time HISTORY
16/02/11 Version 1.2: Edge betweeness computation added
08/02/11 Version 1.1: Normalisation option added
03/01/05 Version 1.0: Initial release
Description
This plugin is an implementation of a biconnected component decomposition algorithm. It assigns the same value to all the edges in the same component.
This algorithm assigns to each node a value defined as following : If two nodes are in the same connected component they have the same value else they have a different value.
Description
This plugin is an implementation of the Algorithm Parameter. algorithm published in :
Y. Chiricota. F.Jourdan, an G.Melancon
"Software component capture using graph clustering",
"IWPC",
2002.
Extended to unbounded depth (for the neigbors) :
This algorithm works on general graphs. The algorithm use the parameter depth in order to determine the depth of the neighbors. If no depth is given, the plugins automatically popup a qt windows to ask the user for this parameter.
Description
This plugin is an implementation of the connected component decompostion algorithm. each node and edge that belongs to the same component receive the same value.
This algorithm assigns to each node a value defined as following : If two nodes are in the same connected component they have the same value else they have a different value.
Description
This plugin is an implementation of a DAG layer decomposition
This algorithm works on general DAG, the complexity is in O(|E|+|V|);
Description
This plugin compute the degree of each node
This plug-in exists to obtain a uniform interface in the Tulip graph visualization software. To access to the degree of a node it is recommended to use directly the degree function available in each graph.
Description
This plugins compute for each node n, the maximum path-length between n and the other node. The graph must be acyclic.
This algorithm works on general graphs.
Description
This plugin compute the eccentricity/closeness centrality of each node
Eccentricity is the maximum distance to go from a node to all others. In this version the Eccentricity value can be normalized (1 means that a node is one of the most eccentric in the network, 0 means that a node is on the centers of the network).
More information about the use of eccentricity metric can be found in :
Visone: Analysis and visualization of social networks.
"Book. Graph Drawing Software. (Ed. Michael Junger & Petra Mutzel",
Authors : Ulrik Brandes and Dorothea Wagner.
"2004",
pages 321-340.
Closeness Centrality is the mean of shortest-paths lengths from a node to others. The normalized values are computed using the reciprocal of the sum of these distances (see "http://en.wikipedia.org/wiki/Closeness_(graph_theory)#Closeness_centrality" for more details).
The complexity of the algorithm is O(|V| * |E|) time and O(1) space.
Description
This plugins assigns id to nodes and edges. The ids are those used by tulip.
Description
This plugin computes the number of leaves in the subtree induced by each node.
This algorithm assigns to each node a value defined as following : If two nodes are in the same connected component they have the same value else they have a different value.
Description
This plugin computes the number of nodes in the subtree induced by each node.
This algorithm assigns to each node a value defined as following : If two nodes are in the same connected component they have the same value else they have a different value.
Description
This plugins assigns random values to nodes and edges. the values are between 0 and 1.
Description
This plugin is an implementation of the Strahler Parameter. algorithm first published as:
A.N.
Strahler
,
"Hypsomic analysis of erosional topography",
"Bulletin Geological Society of America 63,pages 1117-1142.",
1952.
Extended to graphs in :
D. Auber,
Using
Strahler
numbers for real time visual exploration of huge graphs,
ICCVG, International Conference on Computer Vision and Graphics,
pages 56-69,
2002, September.
This algorithm works on general graphs, if no node is selected, the algorithm automatically choose the nodes with higher outdegree as starting nodes.
Description
This plugin is an implementation of the Strength Parameter. algorithm first published in :
Y. Chiricota. F.Jourdan, and G.Melancon
"Software component capture using graph clustering",
"IWPC",
2002.
Selection |
Description
This selection plugins enables to find a subgraph induced by a set of nodes.
Let V' a subset of nodes, G' is an induced subgraph of G if all edges (and only these ones) element of G that link two nodes (only one in case of loop) of V' are in G'.
David Auber, LaBRI University Bordeaux I France: auber@tulip-software.org
Description
This selection plugins implements the so called Kruskal algorithm. This algorithm enables to find a minimum spanning tree in a connected graph.
This selection plugins enables to find all nodes and edges at a fixed distance of a set of nodes.
This only works on undirected graphs, (ie. the orientation of edges is omitted).
It takes one parameter :
DoubleProperty edge weight, this parameter defines the weight of each edge in the graph.
Anthony Don, LaBRI University Bordeaux I France:
Description
This selection plugins enables to find loops in a graph A loop is an edge that has the same source and target.
David Auber, LaBRI University Bordeaux I France: auber@tulip-software.org
Description
This selection plugins enables to find the multiple-edges and parallel-edges in a graph. Let e1, e2 two edges, e1 and e2 are parallel edges if source(e1)=source(e2) and target(e1) = target(e2). If it exists n edges between two nodes, only n-1 edges will be selected.
David Auber, LaBRI University Bordeaux I France: auber@tulip-software.org
Description
This selection plugin enables to find all nodes and edges at a fixed distance of a set of nodes. It takes three parameters :
int distance
int direction : 0 means directed, 1 reverse directed, 2 undirected
BooleanProperty * startingnodes : the selected nodes of this BooleanProperty (those whose associated value is true) will be used as starting nodes.
David Auber, LaBRI University Bordeaux I France: auber@tulip-software.org
Description
This selection plugins enables to find a subgraph of G that is acyclic.
David Auber, LaBRI University Bordeaux I France: auber@tulip-software.org
Description
This selection plugins enables to find a subgraph of G that is a forest (a set of trees).
David Auber, LaBRI University Bordeaux I France: auber@tulip-software.org
Size |
Description
AutoSize.cpp - Compute size in order to prevent node-node overlapping.
This plug-ins compute size of nodes and edges such that, node-node overlapping do not exists (if it is possible). and sizes of edges are proportional to size of nodes.
David Auber University Bordeaux I France: Email: auber@tulip-software.org
Description
FitToLabel.cpp - Compute size of elements according to the size of the displayed label.
version 1.0.0 : Tulip Team, Complete rewrite initial version : Sebastien Carceles, Pascal Niotout, Sophie Bardet, Julien Mercadal, Bertrand Ng Sing Kwong
Maintainer : David Auber University Bordeaux I France: Email: auber@tulip-software.org
Description
Metric Mapping - Compute size of elements according to a metric.
This plugin enables to set the size of the graph's elements according to a metric.
David Auber University Bordeaux I France: Email: auber@tulip-software.org