Project 4: Integrating Data and View
Project due Monday night Mar 10, 2014
The purpose of this assignment is to add features to your display application. You should be able to choose which axes to display, add color and size to indicate fourth and fifth dimensions, and interact with data (i.e. zoom).
- Write updatePoints. This method should modify the coordinates of the existing canvas objects using the current view. You should include a call to updatePoints wherever you have a call to updateAxes.
- Make sure your program can read in test data case 3 and display 2 or 3 spatial dimensions. Then try test data case 4, which has 5 dimensions, the first two of which are correlated.
- Write the complete version of chooseDataAxes. Enable the user to select between 2 and 5 columns for plotting. It's up to you how you design the GUI to handle this. You can require the user to select three spatial dimensions before allowing them to use color or size. Alternatively, you can be flexible and let the user pick 2 or 3 spatial dimensions and then either color or size as additional dimensions.
One possible approach to handling this is to have a menu option 'Plot' that brings up a dialog which gives the user a set of popup menus for selecting each axis/color/size. You could also place popup menus or list boxes on the right side of the main screen with a button "plot" that uses the current menu selections to generate a plot.
- Add code to support size and color to indicate the fourth and fifth dimensions.
- Test your system on the AustraliaCoast data. Try plotting using latitude and longitude as (x, y) with other dimensions as z, color, and size. Capture some screen shots. An extension is to enable the user to select an Eckert projection for the latitude and longitude variables.
- Test your system for the data set you found last week.
Handle resizing the window appropriately. You can use the following
binding to connect the resize method to an event whenever the canvas
', self.resize )
- Extend the range of plotting options to 1-5 columns, where selecting 1 column generates a histogram.
- Try dimensions other than color and size.
- Let the user select a point and then pop up a window or display the point's raw values. Or implement a mouseover feature where information about a point appears when the mouse moves over it.
- Be creative and add useful features.
Write a brief user manual, with screen shots, for your application. Include any extensions or enhancements you implemented.
Include the screen shots for the provided data sets and for your own.
Once you have written up your assignment, give the page the label:
Put your code in the private subdirectory of your folder on Courses. Please make sure you are organizing your code by project.