CSCI 4964/6963 Interactive Visualization
Spring 2016

  Contact Information
  Office Hours   Announcements
  Discussion Forum (LMS)

  Learning Outcomes
  Course Grades

  Lecture notes


  Late Day Policy
  Electronic Submission

Final Project
   Spring '16 Projects

  On-lin Material
  Optional Books

Assignment #2: Graph Visualization with GraphViz

The primary goal for this assignment is to familiarize yourself with a new visualization tool for drawing network-like graphs of linked nodes. GraphViz is an open source graph visualization software that runs on all platforms and is an excellent place to start.

Note: If you are already quite familiar with GraphViz, you are welcome to search for a different graph drawing tool that is "new to you". Possibilities include: Processing, D3 Data Driven Documents, or Gephi: The Open Graph Viz Platform. Do the same exercises below with the other tool and compare the results and overall usability of the tool to what you would expect to see from GraphViz.

  • Download the GraphViz software and explore the gallery of examples. Learn how to run these examples on your own machine and view the results.

    Edit by hand some of the input graph files -- see also the the DOT file format documentation. Experiment with different display options.

  • Using your favorite programming language, write code to generate and output a range of synthetic input files. Your program should be parameterized (allow you to modify) the number of nodes, the density/sparseness of edges, etc. Consider using randomness.

    Aim to create a variety of network connectivities including: a tree, a clique, a planar graph, a bipartite graph, disconnected components etc. The size of your graphs should be "medium" sized (10-40 nodes?). The size should not be too large -- a "good, ~optimal" layout could be done by hand.

    Alternatively, you could write in C/C++ and directly compile with the GraphViz codebase.

  • Experiment with the visual options (layout, color, line style, label font, shapes, etc.). What options are most successful for the different graphs (tree, clique, planar graph, bipartite graph, disconnected, etc.)?

  • Create a plausible graph (or multiple graphs) of our social network, using the data we gathered in Lecture 1 (the Google Drive link is on LMS). Note that we have incomplete and possibly inconsistent data. Not all links in the graph are bi-directional. Multiple different graphs may correctly match this data!

    When planning & designing & revising your graph of this data, consider one (or more) of your original hypotheses for the social network in this class. Choose a graph style that facilitates testing & evaluation of this hypothesis.

  • Analyze the variety and quality of the results. Are the different graph properties appropriately highlighted in the resulting drawings? Note any weaknesses in the tool or degeneracies with more specific inputs. Could you have done better by hand? What adjustments/improvements do you believe are necessary to the graph drawing engine of this tool?

    Write a short review of the tool. How quick was the installation and learning to use the tool? What resources were most useful? What sorts of applications/datasets are most appropriate for this tool? What are the limitations of this tool? What are some suggestions/cautions to others who consider using this tool?

How to Submit

  • Collect ~5-10 interesting and effective images from your results.

  • Prepare your writeup as either:

    • plaintext with separate image files (.png or .jpg) with clear file names, or

    • .pdf with embedded images.

  • Collect the code you wrote to generate the different graphs in a subfolder named "code". Note: We won't try to run your code when grading, so don't include any 3rd party libraries you may have used or the executable. The code should have some organization and basic comments, but you do not need to prepare detailed documentation.

  • Follow the homework server submission instructions to zip up these files and upload your assignment to the homework submission server.

    Note: Contact the instructor if you don't have access to the homework submission server.