User Tools

Site Tools


Visual Analytics Course

Instructors: Guy Melançon (email: Guy dot Melancon at labri dot fr), Bruno Pinaud (email: Bruno dot Pinaud at labri dot fr)

Term project

  • You need to form teams (2 persons).
  • Please email us to let us know who you work with.
  • You need to select domain questions (one will certainly not be enough …) you will answer by foraging data.
  • Your answer must be backed up by evidence relying on data supported by relevant visualization.
  • You need to document your conclusions, provide a written report covering all methodology used.
    • Tell us who's wiki pages we can find the report. Do not upload a flat and dull pdf file, create wiki pages. Use images to illustrate your report.
  • You need to upload any specific algorithms and/or scripts you have used.
  • You will be evaluated on
    • the astute aspect of your work;
    • the difficulty of the task;
    • the technicality and innovativeness of the solution/s;
    • the quality of your oral and written report;
  • If the question is to simple to answer, think of refinements that make it more challenging;
  • 15 minutes oral presentations will take place as a face-to-face interviews in January (date to be confirmed) – no powerpoint or anything, bring a laptop to show short demos and live data/scripts.

Access this page to know more about the available datasets and potential questions.

Bordeaux roadmap 2014-2015 / Session by session cutdown

Remember that Tulip in installed in the CREMI in /net/ens/tulip4. It should always be the latest svn version compiled by hand. It can be launched with /net/ens/tulip4/bin/tulip or to directly launch the graph manipulation perspective /net/ens/tulip4/bin/tulip_perspective -p Tulip. If you find a bug, do not hesitate to show it to us!!

Friday, September 19 (week 38, Bruno Pinaud)

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.


Friday, September 26 (week 39, Bruno Pinaud)

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:

The Python part of the course or lesson will consists in:

  • getting a graph (File/Import)
    • we will start by making our own graph (a grid graph)
    • you may also want to try the Grid, or Grid Approximation Tulip plugin
  • computing a spanning tree out of it (python script)
    • use a simple data structure like a stack or queue to drive the computation of a spanning tree, it's a few lines algorithm (python has a handy Queue library)
  • applying a layout algorithm to the tree subgraph
    • your spanning tree algorithm could well use a boolean property to select what edges (and all nodes) are selected to form the tree. Once you have that, use the addSubGraph method to build a subgraph
    • apply a tree layout algorithm to the tree. Use the applyLayoutAlgorithm method. It requires that you hand it a layout property. Use the getLayoutProperty to grasp the viewLayout property so the new positions for nodes will automatically be transferred to the whole graph (this is automagically done by Tulip. See the beginning of main Python function in the Python script view.
  • playing with node/edge properties to make this as readable as possible
    • grasp the color property viewColor. Create and instance a light gray color tlp.Color(192, 192, 192) or tlp.Color.Gray for instance. iterate over edges and turn the non selected edges to gray (viewColor.setEdgeValue(edge, tlp.Color.Gray))

Here is a solution (will be available after the course). Have fun.

Friday, October 3 (week 40, Guy Melançon)

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 se metrics to large graphs.

Friday, October 10 (week 41, Bruno Pinaud)

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.

  • You are asked to implement either
  • Your algorithm should start from an existing tree (use Tulip general tree random generator to test) and animate the change from the previous layout to the next. The idea here is to force you to play with layout animation.
  • You need to submit your work on October 20 (Monday), before 9am, at the latest.

Friday, October 17 (week 42, Guy Melançon)

Plotting (non graph) high-dimensional data (links with the MDS part of the course).

Friday, October 24 (week 43, Guy Melançon)

Clustering of multi-dimensional data (K-Means, CURE, …), hierarchical agglomerative clustering.

Friday, November 7 (week 45, Bruno Pinaud)

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.

Friday, November 14 (week 46, Bruno Pinaud)

Let's continue to work on Multilevel graph navigation

Friday, November 21 (week 47, Guy Melançon)

Graph clustering.

  • Parallel to hierarchical agglomerative clustering for high-dimensional data. Need to define what a “good” clustering is for a graph – no Huygens criteria this time.
  • Newman modularity is such a criteria.
  • Implementation of a hierarchical agglomerative clustering using Newman's criteria, computing incremental improvements of cluster merge.

Friday, November 28 (week 48, Bruno Pinaud)

Project coaching. See term project for more information.

Friday, December 5 (week 49, Guy Melançon)

Project coaching

Friday, December 12 (week 50)

Course cancelled.

January 19 (week 4, Guy Melançon and Bruno Pinaud)

Project evaluation

/net/html/perso/melancon/Visual_Analytics_Course/data/pages/bordeaux20142015/bordeaux_edition.txt · Last modified: 2014/12/09 11:13 by bpinaud