311 Visualization Project Documentation

Kunal Kewalramani, Nicholas Bowling, Sidath Marapane, William Leithauser

Motivation

The motivation for this application is to better visualize and understand the 311 (non-emergency) calls in 2021 in the City of Cincinnati. The city of Cincinnati already has a data portal with basic data analysis, but we wanted to go one step further, and showcase the data in detail with interactive visualizations.

Data

The data was pulled from Cincinnati’s 311 (Non Emergency) Service Requests as a TSV file and holds information about all service requests from 2012 to now, specifically about how long the requests have been open, their locations, the request types, and other useful facts. The source of the data came from the “Fix It Cincy!” mobile app, which allows Cincinnati residents to directly submit service requests to city departments.

We chose to use the data from 2021 to speed up processing.

Visualization Components

Leaflet Map

At the forefront of the application is a leaflet map with data points pertaining to the locations of the service requests.

Using the “Color By” selection bar, a user can color the datapoints to categorize the datapoints by a certain type.

With the “Toggle Map Background” button, the user can also toggle the map background from displaying an ESRI satelite view to a Stamen roads/boundaries view.

Timeline

The timeline features an interactive version of the ‘Calls by Day’ Bar Chart where users can see the number of service calls for each day in 2021. It also allows users to see the trend of calls over 2021 (for example, the brushing context at the bottom of the timeline shows that there were more calls in the second half of 2021 than the first half of 2021). Some ways users can interact with the timeline:

Bar Charts and Histogram

We created 4 additional bar chart visualizations for this project. These views are described as follows:

We used a common class for all our bar charts to reduce the complexity of our code base. This decision also allowed us to easily implement data filtering – clicking on any of the bars on the bar chart will filter the rest of the bar charts and the map (although not the timeline, due to the brushing we have). We also included a button beneath the map that allows the user to restore the data to its initial view. The bars have also been fully styled with CSS and animated.

Design Sketches and Justification

We created two sketches before starting on this project. For our sketches, we focused on the two main views of this project: the map and the timeline.

This sketch is relatively close to what our project ended up looking like. You can see the map on the left, with an early prototype of what it might look like to have a color switcher and legend. On the right, we have our timeline; we knew early on that we wanted to do brushing for this view, so in this sketch we placed the brushing directly underneath.

This second sketch shows off some of the other ideas we had. On the map view, it shows the tooltips that more or less made it to the final version. To the right of the table is an idea for a table that we decided to scrap in order to focus on other parts of this project. Underneath is an idea for a timeline that shows incidents by year, which we ended up implementing with a line graph instead.

This sketch also was our first exploration of how this visualization might be made interactive. The arrows show how the data might be linked to each other, and how selecting one could filter the others. We also showed which elements would need to be highlighted when selected by the user.

Findings

With this application, we discovered the following:

Code Structure

The application was written in JavaScript with its D3 library – each type of visualization had its own class (LeafletMap, Timeline, Barchart) and was created in a main.js file. The code for the project can be found on GitHub and run using Python’s SimpleHTTPServer – the application is also hosted here.

Team Task Delegation

Kunal Kewalramani

Nicholas Bowling

Sidath Marapane

William Leithauser

Video Demonstration