Big Data/Analytics Zone is brought to you in partnership with:

Justin Bozonier is the Product Optimization Specialist at GrubHub formerly Sr. Developer/Analyst at Cheezburger. He's engineered a large, scalable analytics system, worked on actuarial modeling software. As Product Optimization Specialist he is currently leading split test design, implementation, and analysis. The opinions expressed here represent my own and not those of my employer. Justin is a DZone MVB and is not an employee of DZone and has posted 27 posts at DZone. You can read more from them at their website. View Full User Profile

How to Plot 911 Police & Fire Responses in R

10.10.2012
| 4394 views |
  • submit to reddit
Today I downloaded Seattle's dataset of over 438k 911 police responses for the city and plotted them in R. You can find the data I used and more here: http://data.seattle.gov/

Here's the plot I created in R from this data:

 

Police_911_responses_in_seattle

 

First, compare my plot to this Google Map: 
View Larger Map

I've read about Facebook doing something similar and seeing maps formed, but I've never experienced it for myself. It was awesome to see it happen.

Also (and very unsurprisingly), notice how the darkest area with the most incidents is in downtown, and how abruptly the density changes at the city limits.

Here's how to do it yourself.

  1. Downloaded this specific dataset in CSV format: http://data.seattle.gov/Public-Safety/Seattle-Police-Department-911-Incident-Response/3k2p-39jp
  2. Load it into R by executing the following command: police_911 <- read.csv(file.choose())
  3. Find where you downloaded the file and open it
  4. Then I always use summary to quickly look at the data and get my bearings: summary(police_911)
  5. Notice the Longitude and Latitude columns? Already neatly parsed for us! Time to plot!
  6. plot(police_911$Longitude, police_911$Latitude, pch=20, cex=.01)

That's it! The pch and cex parameters allow me to set the point shape and size respectively. By executing length(police_911$Latitude), I can find out how many rows there are in that column... 438,512. Schiesse!

Update: Here's a map with Fire responses added to it as well. Blue is police and red is fire.

 

Police__fire_911_responses
 
Published at DZone with permission of Justin Bozonier, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)