Mapping NYC Subway Stations & Hospitals

Lab Reports, Maps, Visualization


MTA subway is one of the most important public transportation for New Yorkers and visitors. It is also one of the most convenient subway systems in the world because of running 24/7 before COVID 19(now the service has resumed). However, the subway station infrastructure excludes many riders who need elevators to get on the train stations because there are very limited accessible subway stations in New York City. And in the city that most people rely on the subway to get to their destinations, people who need to go to some public facilities with wheelchairs such as hospitals, for example, probably have to select alternative transportations.

In order to understand this problem and come up with better city planning in the future, it will be helpful to create a visualization showing all related data. To see the relationship among city residents distribution, public facilities locations, and subway distribution with accessible stations, I selected map as the visualization method. I also ended up selecting hospitals from all kinds of public facilities as one of the subjects and all subways station data instead of accessible stations data due to the database limitation.


I took inspiration from the map Manhattan and Bronx Supermarket location and Population by Census Tract and found out how to design my map with multiple layers. There are a few things I like about this map. Firstly, for the map on the left, the population provided by the census tract is annotated and distributed on the map in 5 colors from white to red. It is clear on the map that the white part shows the least residents while the reddest part shows the most residents, even if you don’t read the legend.

The map on the right uses 3-color points with opacity to indicate supermarket locations that strongly show location distribution. However, since the design of color and opacity is not effective enough, it is hard to see the different store types once they are close to each other because they look like overlapped. It will be helpful to add something to distinguish the edge of points and show the clear distribution of points without blending like a heatmap. And the legend on this map is somehow confusing due to the use of different colors for buffer related to its store type. For example, the grocery buffer is a box in light blue while the grocery store is a point in dark purple on the legend. These confusing aspects are what I aimed to avoid for my map.



To build the map, I chose 2020 Census Tracts Data and 2021 Facilities Database from NYC Planning official data library and Subway Stations Data from NYC OpenData. The datasets I selected were not perfectly ideal for my initial end goal. Like I mentioned above, I planned to show the map with MTA Accessible Subway Stations and public facilities with local residents. However, due to the technical constraints about the tool I selected later, and that the only available accessible subway stations data is a PDF document, I decided to use the more general subway data information.


To create my map, I used CARTO, a cloud computing platform that provides GIS, web-mapping, and spatial data science tools. According to online video demos and information sharing from blogs, this tool was powerful in creating layers of maps and personalizations of each element at the stage before the migration to the new platform. Now the new platform has a lot of restrictions, such as limited imported file formats, hidden design features, and the missing legend area. I discovered some drawbacks of this tool but still decided to use it for my visualization for two reasons. One is that I want to explore the possibility of this tool and see how much I can do; the second is that I want to try something new besides Tableau and see what the differences are.


The first thing to do in CARTO was to upload the datasets and organize the layers based on preference. I placed each layer based on the area sizes. Since census tract data took more area than the other two, it is placed at the bottom with hospital data and subway stations on top of it.

I then modified the visualization of each layer using the layer style function in CARTO. I played around with different sequential color schemes and selected from light yellow to red to indicate populations. The more people the neighborhood has, the more red the area is. For the hospital, I designed the circles with the radius scale from 10 to 20. The size is determined by surrounding populations which the data is derived from the census tract. The circles have 50% opacity to avoid hidden information from the overlaps. And finally, I selected dark blue for the subway stations to signify the MTA brand color.

I used the widget feature to filter hospital data from my original dataset 2021 Facilities Database. I then edited the interactive tooltip information to provide selected relevant data and finished up the final visualization. However, I couldn’t edit the legend nor show the legend on the polished page due to CARTO limitation.


The final map visualization came out nicely, highlighting the local residents, all subway stations, and existing hospitals in New York City. There are 3 types of information for the legend. The first one is that the yellow to red color shows the local residents based on the 2020 Census Tract, and the more residents, the more intense red of the color is. Each area of color is outlined by its own neighborhood, including neighborhood name, neighborhood census tract number, borough name, and borough census tract number. The second type of information is hospital distribution. Hospitals are distributed around New York City with 5 boroughs, including Manhattan, Bronx, Queens, Brooklyn, and Staten Island. When zooming out the map, you can clearly see the 5 borough labels. When zooming in on the map, the more detailed information about the area will also show the labels. Each hospital is a circle with 50% opacity to showcase nearby hospitals and avoid overlapping, and the size of each circle is based on the census tract data. The larger the circle, the more local residents that hospital area has. The last type of information is simply about all MTA subway stations. Each dark blue point indicates a subway station combining all entrances.

From this map, it is surprising to see that the distribution of subway stations and hospitals is not directly affected by the distribution of the number of local residents. One of the conclusions I have here is that, for an extreme case, Manhattan has the most subway stations compared to other boroughs and fewer local residents, mainly because it is more a business center than a residential area for a specific circumstance. And since there are more subways stations which means the public transportation is more well-developed, there are more hospitals clustering in Manhattan than other boroughs with larger mapping areas. Overall, for city planning, what people need to understand is the goals for building and organizing public transportation such as subways. Suppose we want to improve the way people access public facilities rather than just business-intensive areas such as financial firms. In that case, we need to rethink where the subways should go and how many stations should be around the hospital areas based on local residents.


A map is a very helpful and powerful tool to give the most straightforwards information about area data. By having this tool, I suddenly understand more about my neighborhood and the city I live in. I believe people who are not from this area will also get more understanding about a place based on the comprehensive information we designed on the map.

From this project, I also noticed that the importance of data accuracy and legend explanation. Although I have explained the map above, I can hardly edit legend information and offer more readable and user-friendly descriptions to help the audience read the map. For future steps, if I decide to improve this visualization, I will take it to Tableau and create more self-explanatory information with more sophisticated features.