Seven Days
of carsharing

Exploring and visualizing the Enjoy carsharing service in Milan.

About this Project

In the last few years many cities around the world have shown important changes in terms of mobility. The rise and growth of many car sharing services has been an important factor in changing the way people move inside the city.
Visualizing and analyzing data from carsharing services and other forms of urban mobility allows for a better understanding of how the city is used and helps to discover the most prominent mobility patterns.
Below is a series of visual explorations of data collected over the time span of one week from one of the main car sharing services in Milan called Enjoy.
We started this project as a small experiment to investigate through different techniques how urban traffic patterns evolve day by day and the main characteristics of use of the service.

Data Overview

In february 2014 we started scraping data directly from the Enjoy website getting the position of all the cars available every 2 minutes. We collected more than 1,700,000 data points resulting in more than 20,000 rents, 100,000 km travelled and 800 days of usage.
The first visualization we created represents an overview of the total number of rents. Every step is a car and every rent is represented by a line that connects the pick-up moment and the drop-off. Consequently, the length of the line represent the duration of time a single car has been rented. In this way it’s possible to discover when the service is most used and how the patterns evolve depending on the day of the week and the hour.
t’s not a surprise to see that for example the service is mostly used during the day on workdays, while during the weekend there are many rents also during late hours.




















total rents








rent hours








km traveled









Since Enjoy doesn’t provide any information about the routing, but just the positions of the available cars, we set a starting point every time a car becomes unavailable and an ending point when it becomes available again. We used an open routing service (Open Source Routing Machine) to estimate route geometries for each rent.
The routes data has then been translated into a geojson file and visualized with Processing, using the Unfolding library. Each rent has a start and an end time, and could hence be displayed in its own timeframe. In addition, the position of the car in the path was computed by interpolating its coordinates along the route with respect to the total duration and length of the rent.
The resulting routes represent the most likely way to go from the start point to the end point in the city. Obviously, the main streets (especially the rings of the city), are the most visible. It should be noted that this phenomenon is also the result of the service we used to get the routes that tend to privilege the shortest path instead of the quickest one and it doesn’t take in account other factors like traffic and rush hours.
An interesting phenomenon we can notice in the video is a general movement from the center and the main street during the day to the more peripheral areas during the night.

Routes during
the week

In this map we can see all the routes of the week aggregated by time spans on an interactive map created with Tilemill and Mapbox.js. Selecting the filters on the right of the map is possible to select specific time spans and compare them.


Analyzing the availability of cars and their position is also an interesting way to *read* the city and understand the most prominent mobility patterns. Depending on the time of the day and the amount of cars available we can understand which areas of the city are more active and when.
In the visualization below we wanted to visualize this using a Voronoi diagram.
This kind of visualization not only shows us the position of the cars, represented by yellow dots, but also the area *covered* by each car. The areas surrounding the cars contain all the points on the map closer to that car than to any other. As we have seen in the other map the most visible pattern is the movement of cars from the center during the day to the more peripheral areas during the night. As a result of this phenomenon, users generally have to walk a lot in the very central areas during the night before reaching a car.
The map was realized and animated using the amazing d3.js javacript library


To better understand the patterns we decided to plot, beside the maps, the number of available cars for each of the 88 N.I.L. (Nuclei di identità locale) using a stream graph. N.I.L. are the new official neighbourhoods in Milan: you can check a map below or download the shapefiles from the open data milano platform.

The streams below show the number of cars available every hour for each N.I.L. and they are sorted by the total amount of cars available during the whole week.
As we can see the neighbourhoods with the highest number of cars are the more peripheral ones (like Gallaratese and Baggio). In these neighbourhoods we also notice a pretty stable availability of cars while in some other like Duomo (the most central area) or Centrale (the main train station) is clearly visible a pattern of activity during the day.
Another curious insight are the peaks we see in some areas that are interested by some particular events like San Siro (the area around the stadium that host FC Inter and AC Milan matches) where is clearly visible a peak on Sunday evening, day of the big match between AC Milan and Juventus .


This project is intended as a small experiment with an Academic purpose. Our goal is to find out new way to explore, analyze and visualize mobility patterns in the city without any commercial or advertising purpose.
As we explain in the previous description we don't have the data about the routes of each car but we used a routing open service to estimate them. If you are interested about this topic please take a look at this project by Mappable that have been particularly inspiring for us.