Integration and Visualization
Due before spring break
The goal of this week's lab is to integrate your ability to read data, execute simple data analysis computations, and visualization data.
The end result of this project should be a functional prototype for visualizing your client's data. A user should be able to read in the data through menu functions and visualize the data in a customizable manner, as outlined below.
The user should be able to read in a data set--you can limit the
format to that of your client's data--and select up to three axes to
visualize. You are free to design the user interface for picking
visualization axes. Read through all of the tasks before starting your
- If the user selects three axes, pre-normalize the data on those three axes to the box between (0, 0, 0) and (1, 1, 1) and then connect it to your interactive 3D visualization.
- If the user selects two axes, you are free to choose your own method of visualization. As a default, you could set the z-coordinate of each data point to 0 and then limit the user to translation and scaling.
- If the user selects a single axis, you are free to choose your own method of visualization. A good choice would be a histogram. You may want to permit user input on the number of bins in the histogram.
Note, if your data is not amenable to 3D visualization, please pick an interesting alternative data set on which to demonstrate that capability. Try to pick one related to your client's data set or general area.
- Implement a way for the user to pick one additional axis and use color to represent its value in the above visualizations.
- Implement at least one additional visualization customized for your client. Do some research on visualizations for inspiration. Be creative. The visualization does not need to be interactive, but...
- Your writeup is a significant part of this project. It should be a user manual or tutorial, with screen shots, for using your program. Your audience is your client, and you can target your writeup appropriately.
Come up with an acronym or name for your program. Be creative.
For example, Deluxe Integrated System for Clustering Operations [DISCO] was a web system we designed for data analysis a few years ago. We used a big rotating disco ball for the background of the main window when you logged in to the program.
The success of your program may, in the end, be completely determined by how cool your acronym is. Then again, it's success may have something to do with the quality of your work. But it never hurts to have a cool name.
- Enable the user to click on a data point in the visualization and have it generate a dialog box showing the complete feature vector for that data point. This feature is guaranteed to be used if you provide it. It's almost guaranteed to be requested if you don't.
- In the 1-D visualization, include basic analysis of the data such as mean, median, mode, and standard deviation.
- Develop more custom visualizations for your client.
- In addition to color, enable your visualization to use size or other feature to represent an axis. For example, use icons for representing a category variable.
For this week's writeup, make one child page from the main data project page. Create a manual or tutorial for your program, complete with screen shots. Give it an appropriate title.
Once you have written up your assignment, give the page the label:
Put your code in the COMP/CS251 folder on fileserver1/Academics. Please make sure you are organizing your code by project.