Skip to content
geeksforgeeks
  • Tutorials
    • Python
    • Java
    • Data Structures & Algorithms
    • ML & Data Science
    • Interview Corner
    • Programming Languages
    • Web Development
    • CS Subjects
    • DevOps And Linux
    • School Learning
    • Practice Coding Problems
  • Courses
    • DSA to Development
    • Get IBM Certification
    • Newly Launched!
      • Master Django Framework
      • Become AWS Certified
    • For Working Professionals
      • Interview 101: DSA & System Design
      • Data Science Training Program
      • JAVA Backend Development (Live)
      • DevOps Engineering (LIVE)
      • Data Structures & Algorithms in Python
    • For Students
      • Placement Preparation Course
      • Data Science (Live)
      • Data Structure & Algorithm-Self Paced (C++/JAVA)
      • Master Competitive Programming (Live)
      • Full Stack Development with React & Node JS (Live)
    • Full Stack Development
    • Data Science Program
    • All Courses
  • Python Tutorial
  • Interview Questions
  • Python Quiz
  • Python Glossary
  • Python Projects
  • Practice Python
  • Data Science With Python
  • Python Web Dev
  • DSA with Python
  • Python OOPs
Open In App
Next Article:
Visualizing Geospatial Data using Folium in Python
Next article icon

Visualizing Geospatial Data using Folium in Python

Last Updated : 28 Nov, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

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:


Next Article
Visualizing Geospatial Data using Folium in Python

N

nityaak5
Improve
Article Tags :
  • Python
  • python-modules
Practice Tags :
  • python

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
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
Advertise with us
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • In Media
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Placement Training Program
  • Languages
  • Python
  • Java
  • C++
  • PHP
  • GoLang
  • SQL
  • R Language
  • Android Tutorial
  • Tutorials Archive
  • DSA
  • Data Structures
  • Algorithms
  • DSA for Beginners
  • Basic DSA Problems
  • DSA Roadmap
  • Top 100 DSA Interview Problems
  • DSA Roadmap by Sandeep Jain
  • All Cheat Sheets
  • Data Science & ML
  • Data Science With Python
  • Data Science For Beginner
  • Machine Learning
  • ML Maths
  • Data Visualisation
  • Pandas
  • NumPy
  • NLP
  • Deep Learning
  • Web Technologies
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • ReactJS
  • NextJS
  • Bootstrap
  • Web Design
  • Python Tutorial
  • Python Programming Examples
  • Python Projects
  • Python Tkinter
  • Python Web Scraping
  • OpenCV Tutorial
  • Python Interview Question
  • Django
  • Computer Science
  • Operating Systems
  • Computer Network
  • Database Management System
  • Software Engineering
  • Digital Logic Design
  • Engineering Maths
  • Software Development
  • Software Testing
  • DevOps
  • Git
  • Linux
  • AWS
  • Docker
  • Kubernetes
  • Azure
  • GCP
  • DevOps Roadmap
  • System Design
  • High Level Design
  • Low Level Design
  • UML Diagrams
  • Interview Guide
  • Design Patterns
  • OOAD
  • System Design Bootcamp
  • Interview Questions
  • Inteview Preparation
  • Competitive Programming
  • Top DS or Algo for CP
  • Company-Wise Recruitment Process
  • Company-Wise Preparation
  • Aptitude Preparation
  • Puzzles
  • School Subjects
  • Mathematics
  • Physics
  • Chemistry
  • Biology
  • Social Science
  • English Grammar
  • Commerce
  • World GK
  • GeeksforGeeks Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
We use cookies to ensure you have the best browsing experience on our website. By using our site, you acknowledge that you have read and understood our Cookie Policy & Privacy Policy
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences