Utilize the matLibPlot library to create visualizations of data in two-dimensional chart form. FedEx Day #1
matplotlib is a Python library that simplifies the creation of plots, histograms, bar charts, scatterplots, etc. For the FedEx project, I thought it would be interesting to further investigate its capabilities in producing unique visualizations. I see these visualizations as a value added deliverable to the standard GIS deliverables supporting decision making and planning.
Goal of the Project
The goal of the project was to successfully utilize the library and create "a" visualization of the data via scatter plot or heat map. I downloaded the TRAVEL TIME TO WORK dataset (BO8303) for Maryland counties from the Census Bureau's Factfinder search tool as a test. Click here for the dataset. These are counts by county of workers 16 years and over who commute to work. In addition, the counts are broken down into how long it takes to get to work (i.e 653 people commute 10-14 min that are from XYZ county). This was the focus of the project.
Setup and Configuration
I used Eclipse IDE as the development environment to experiment with this project. I also installed the add-on, PyDev, which enables you to create Python projects, set the type of project (Python, Jython, or Iron Python), set interpreter, add dependencies to the project and so on.
Python needs to be installed as well as dependecies for the matLibPlot library. To properly setup, install the following in the order listed (for Win7).
- Python 2.6 or higher - http://python.org/download/releases/
- numpy 1.7.0 - https://pypi.python.org/pypi/numpy
- matLibPlot 1.2.0 - http://matplotlib.org/downloads.html
Using the MSI installers are the easiest means of getting quickly setup. You can also download the tarballs and install manually via command line.
The code to demonstrate the example is crude. I copied some of the code from examples on their website and hard-coded paths to reference my data. The data is able to be rendered but at this point can't make exact sense of it. More work needs to be done.
Using this library relies heavily on the numpy library which I did not foresee when I dove into this. Going forward...
- Research the numpy library
- Choose a larger sample of data
- Choose the appropriate method to plot the data
- Keep working with these libraries