# Visual Analytics Course

### Site Tools

bordeaux:bordeaux_edition

## 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)

### Bordeaux roadmap 2012-2013 / Session by session cutdown

Have a look at the page describing the course organization: assignments, term projects and evaluation, deadlines, etc.

#### Friday, September 21 (week 38)

Instructor: 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. As a consequence, an option is to delay the presentation and discussion about Munzner's nested model planned on the first day and advance the presentation of the following topics.

Homework

You need to submit your work on September 27 at the latest.

• You are asked to select an existing visualization (try http://www.visualcomplexity.com/vc/) and comment it based on objective criteria (operatory, articulatory and semantic distances) - see the Perception section.
• Provide a context motivating the realization of the map (what is it about, why did the authors consider making such a map ?)
• Provide a short write-up listing positive and negative aspects of the map, giving arguments for/against its readability and efficiency at carrying the intended message or task. Be objective, don't lay down all the feelings you had about it.
• Prepare a 2 minutes presentation (very short, be efficient and crispy), the next class will start with a fast-forward presentation of all maps.

#### Friday, September 28 (week 39) CREMI

Instructor: Guy Melançon

Drawing graphs, for real

• A (very) brief introduction
• Trees: Walker's algorithm and variations

Have a look at the powerpoint presentation I showed in the class.

Because we want to actually 'do' things, we need to devote time learning how to use the Tulip framework (developed here at LaBRI).

This part of the course or lesson will consists in:

• getting a graph (File/Import)
• you may want to try the Grid, or Grid Approximation algorithm
• 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. this method 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.
• playing with node/edge properties to make this as readable as possible
• grasp the color property viewColor. create and instance of a light gray color tlp.Color(192, 192, 192) for instance. iterate over edges and turn the non selected edges to grey (viewColor.setEdgeValue(edge, grey))

Here is a solution. Have fun.

Homework

You need to submit your work on October 15 (Monday), before 9am, at the latest.

• 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.

#### Friday, October 5 (week 40) CREMI

Instructor: Bruno Pinaud

Graph drawing basics

Have a look at the slides I showed in the class.

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.

Getting serious with Tulip

Homework

Recall that you need to submit your homework #2 on October 15 at the latest.

#### Friday, October 12 (week 41)

Instructor: Bruno Pinaud

Working session on the homework #2.

#### Friday, October 19 (week 42)

Instructor: Guy Melançon

“Drawing multi-dimensional datasets”. The course covered all material of the High-dimensional datasets. Parts of the course were left as exercises, mainly to implement the PCA and MDS algorithms we discussed. The Cars dataset was used to illustrate the ideas and algorithms.

Code is now available from the PCA and MDS sections (see the exercises subsections).

#### Friday, October 26 (week 43)

Instructors: Guy Melançon

Downsizing data, cutting networks into pieces - part I

The course will cover the Huygens Ward theorem, the K-means and CURE algorithms. Most of your time shall be devoted to implementing the CURE algorithm and track for the best clustering of the Cars dataset.

Code is now available from the k-Means algorithm.

#### Friday, November 9 (week 45)

Instructors: Bruno Pinaud

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 16 (week 46)

Instructors: Guy Melançon

Downsizing data, cutting networks into pieces - part II

#### Friday, November 23 (week 47)

Instructors: Guy Melançon

Focus & Context - show the big picture, and provide details around a point of interest

#### Friday, November 30 (week 48)

Instructors: Bruno Pinaud

Take a dataset from http://snap.stanford.edu/data/index.html or Kaggle (\$ ) or the Visual Analytics Benchmark Repository.

Term project - I

#### Friday, December 7 (week 49)

Instructor: Guy Melançon

Term project - II

#### Friday, December 14 (week 50)

Instructor: Bruno Pinaud

Term project - III