Visualizing Geospatial Data using Folium in Python
Last Updated : 28 Nov, 2022
One of the most important tasks for someone working on datasets with countries, cities, etc. is to understand the relationships between their data's physical location and their geographical context. And one such way to visualize the data is using Folium.
Folium is a powerful data visualization library in Python that was built primarily to help people visualize geospatial data. With Folium, one can create a map of any location in the world. Folium is actually a python wrapper for leaflet.js which is a javascript library for plotting interactive maps.
We shall now see a simple way to plot and visualize geospatial data. We will use a dataset consisting of unemployment rates in the US
Installation
If folium is not installed, one can simply install it using any one of the following commands:
$ pip install folium OR $ conda install -c conda-forge folium
Using folium.Map(), we will create a base map and store it in an object. This function takes location coordinates and zoom values as arguments.
Syntax: folium.Map(location,tiles= "OpenStreetMap" zoom_start=4)
Parameters:
- location: list of location coordinates
- tiles: default is OpenStreetMap. Other options: tamen Terrain, Stamen Toner, Mapbox Bright etc.
- zoom_start: int
Code:
Python3 # import the folium, pandas libraries import folium import pandas as pd # initialize the map and store it in a m object m = folium.Map(location = [40, -95], zoom_start = 4) # show the map m.save('my_map.html')
Output:

Import Dataset using pandas:
Now, we shall import the data sets using the Pandas library.
Python3 # getting the data url = ( "https://raw.githubusercontent.com/python-visualization/folium/master/examples/data" ) state_geo = f"{url}/us-states.json" state_unemployment = f"{url}/US_Unemployment_Oct2012.csv" state_data = pd.read_csv(state_unemployment)
Creating Map with Dataset:
Once we have all the data we have, we will visualize this data using choropleth maps. Choropleth maps represent divided areas in various colors based on the statistical variable presented to them. Here, we use the unemployment rate in the US as a means to divide regions into different colors.
Using folium.Choropleth(), we can plot the final map. The details of each attribute are given in the code itself. The ‘key on’ parameter refers to the label in the JSON object (state_geo) which has the state detail as the feature ID attached to each country’s border information. Our states in the data frame should match the feature ID in the json object.
Syntax: folium.Choropleth(geo_data,name,data,columns,fill_color, fill_opacity, line_opacity, key_on,legend_name)
Parameters:
- geo_data: a set of geographic regions and their boundary coordinates
- name: String (name of our map)
- data: a numeric value for each region, used for the color
- columns: list (columns we need to work on)
- fill_color: Color of the map, eg: YlGn
- fill_opacity: opacity of the colors filled
- line_opacity: opacity of the border lines
- legend_name: String
Finally, we can save our map as an HTML file.
Python3 folium.Choropleth( # geographical locations geo_data = state_geo, name = "choropleth", # the data set we are using data = state_data, columns = ["State", "Unemployment"], # YlGn refers to yellow and green fill_color = "YlGn", fill_opacity = 0.7, line_opacity = .1, key_on = "feature.id", legend_name = "Unemployment Rate (%)", ).add_to(m) m.save('final_map.html')
Output:

Similar Reads
Working with Geospatial Data in Python Spatial data, also known as geospatial data, GIS data, or geodata, is a type of numeric data that defines the geographic location of a physical object, such as a building, a street, a town, a city, a country, or other physical objects, using a geographic coordinate system. You may determine not just
14 min read
Python Bokeh â Visualizing the Iris Dataset Bokeh is a Python interactive data visualization. It renders its plots using HTML and JavaScript. It targets modern web browsers for presentation providing elegant, concise construction of novel graphics with high-performance interactivity. Bokeh can be used to visualize the Iris flower dataset. Vis
8 min read
Visualize the Flower Dataset using Tensorflow - Python The Tensorflow flower dataset is a large dataset that consists of flower images. In this article, we are going to learn how we can visualize the flower dataset in python. For the purposes of this article, we will use tensorflow_datasets and Matplotlib library. Prerequisites If you don't have any of
2 min read
Plotting Lines and Multilines on Maps Using Folium Folium is a powerful Python library that simplifies the process of creating interactive maps using Leaflet.js. One of its many features includes the ability to add lines and multilines to a map, which can be useful for visualizing routes, boundaries, and other linear data. This article will guide yo
4 min read
Python | Plotting Google Map using folium package Folium is built on the data wrangling strengths of the Python ecosystem and the mapping strengths of the Leaflet.js (JavaScript) library. Simply, manipulate your data in Python, then visualize it on a leaflet map via Folium. Folium makes it easy to visualize data that's been manipulated in Python, o
2 min read