Remember that Tulip in installed in the CREMI in
/net/ens/tulip. It should always be the latest svn version compiled by hand. It can be launched with
/net/ens/tulip/bin/tulip or to directly launch the graph manipulation perspective
/net/ens/tulip/bin/tulip_perspective -p Tulip. If you find a bug, do not hesitate to show it to us!!
This first portion of the course is meant to introduce the topic of the course, motivate this still new research field although examples are there to indicate ideas go back to ancient times.
Have a look at the slides showed in the class.
It does include a comprehensive course on Tulip so students are able to work by themselves using the framework.
Because we want to actually 'do' things, we need to devote time learning how to use the Tulip framework (developed here at LaBRI). We worked on several examples showing many tulip functionalities:
Graph Drawing: Walker algorithm, sugiyama heuristics and introduction to graph drawing based on physical analogy. Slides showed during the lecture
See Di-Battista, G.; Eades, P.; Tamassia, R. & Tollis, I.-G. Graph drawing – Algorithms for the visualization of graphs Prentice-Hall, 1999 for a nice introduction to graph drawing.
Hierarchical graph drawing (also called Layered drawing)
See this paper for a complete overview.
pythonAPI (see Tulip's website)
The Python part of the course or lesson will consists in:
addSubGraphmethod to build a subgraph
applyLayoutAlgorithmmethod. It requires that you hand it a layout property. Use the
getLayoutPropertyto grasp the
viewLayoutproperty so the new positions for nodes will automatically be transferred to the whole graph (this is automagically done by Tulip. See the beginning of
mainPython function in the Python script view.
viewColor. Create and instance a light gray color
tlp.Color(192, 192, 192)or
tlp.Color.Grayfor instance. iterate over edges and turn the non selected edges to gray (
Here is a solution (will be available after the course). Have fun.
Multilevel graph navigation
Divide and conquer - drawing and manipulating graph hierarchies with Tulip We will use the following file to play with graph hierarchies infovis_clean.tlpx. The work to do is described in this document hierarchies.pdf.
Network metrics This lecture was partly based on the chapter concerning network metrics. Half of the course was devoted to defining a few metrics on graphs: node degree (obvious while easily interpretable and extremely useful); clustering coefficient (also quite informative although more tedious to compute on some graphs); node betweenness centrality. We then looked into random walk version of node degree and (second order) centrality to scale the metrics to large graphs.
Clustering of multi-dimensional data (K-Means, CURE, …), hierarchical agglomerative clustering.
Project coaching. See term project for more information.