Table of Contents
1. Install and Import Required Libraries
2. Create a Basic Map
3. Add Markers from Data
4. Use Circle Markers for Data Visualization
5. Create a Heatmap (Optional)
6. Choropleth Maps (Thematic Mapping)
Tips for Better Maps
Home Backend Development Python Tutorial How to plot data on a geographical map using Folium in Python?

How to plot data on a geographical map using Folium in Python?

Aug 02, 2025 pm 01:13 PM

Install folium and pandas using pip and import them. 2. Create a map with folium.Map by specifying center coordinates and zoom level. 3. Load data using pandas and add markers via folium.Marker with popup and tooltip for interactivity. 4. Use folium.CircleMarker to visualize data values with scaled radius and color. 5. Generate a heatmap using folium.plugins.HeatMap with coordinate-value pairs for density representation. 6. Build a choropleth map using folium.Choropleth with GeoJSON and data to color regions based on values, adding a legend and layer control for interactivity. Always ensure clean latitude-longitude formatting and use custom tiles for enhanced visuals, enabling interactive, layered maps in Python with minimal code.

How to plot data on a geographical map using Folium in Python?

Plotting data on a geographical map using Folium in Python is straightforward and powerful, especially for creating interactive maps with markers, heatmaps, and choropleth layers. Here's how you can do it step by step.

How to plot data on a geographical map using Folium in Python?

1. Install and Import Required Libraries

First, make sure you have folium installed. You can install it via pip:

pip install folium pandas

Then import the necessary libraries:

How to plot data on a geographical map using Folium in Python?
import folium
import pandas as pd

2. Create a Basic Map

Start by creating a map centered at a specific location using latitude and longitude.

# Create a map centered at a specific location (e.g., New York City)
m = folium.Map(location=[40.7128, -74.0060], zoom_start=10)

# Display the map
m.save("map.html")  # Save to HTML file

You can also use m directly in Jupyter Notebook to display it inline.

How to plot data on a geographical map using Folium in Python?

3. Add Markers from Data

If you have data (e.g., a CSV file with latitude, longitude, and labels), you can plot markers for each point.

Assume your data looks like this:

City,Lat,Long,Description
New York,40.7128,-74.0060,"Big Apple"
Los Angeles,34.0522,-118.2437,"City of Angels"
Chicago,41.8781,-87.6298,"Windy City"

Load and plot:

# Load data
data = pd.read_csv("locations.csv")

# Add markers to the map
for _, row in data.iterrows():
    folium.Marker(
        location=[row['Lat'], row['Long']],
        popup=row['Description'],
        tooltip=row['City']
    ).add_to(m)

m.save("map_with_markers.html")
  • popup: Shows info when clicked.
  • tooltip: Shows text on hover.

4. Use Circle Markers for Data Visualization

To represent values (e.g., population, temperature), use CircleMarker with varying size/color.

# Example with a 'Value' column
for _, row in data.iterrows():
    folium.CircleMarker(
        location=[row['Lat'], row['Long']],
        radius=row['Value'] / 10000,  # Scale radius
        color="crimson",
        fill=True,
        fill_color="crimson",
        popup=f"{row['City']}: {row['Value']}"
    ).add_to(m)

5. Create a Heatmap (Optional)

Install and use folium.plugins.HeatMap for density visualization.

from folium.plugins import HeatMap

# Sample data with coordinates and weights
heat_data = [[row['Lat'], row['Long'], row['Value']] for _, row in data.iterrows()]

# Create heatmap layer
HeatMap(heat_data).add_to(m)

m.save("heatmap.html")

Note: Great for showing concentration (e.g., crime incidents, traffic).


6. Choropleth Maps (Thematic Mapping)

Use a GeoJSON file and data to color regions (e.g., states, countries).

# Assume you have a GeoJSON file for US states and a CSV with state-level data
choropleth_data = pd.read_csv("state_data.csv")  # Columns: State, Unemployment

m = folium.Map(location=[37, -102], zoom_start=5)

folium.Choropleth(
    geo_data="us-states.json",  # GeoJSON file
    name="choropleth",
    data=choropleth_data,
    columns=["State", "Unemployment"],
    key_on="feature.id",
    fill_color="YlGn",
    fill_opacity=0.7,
    line_opacity=0.2,
    legend_name="Unemployment Rate (%)"
).add_to(m)

folium.LayerControl().add_to(m)  # Add layer control

m.save("choropleth_map.html")

Tips for Better Maps

  • Use tiles='Stamen Terrain' or 'CartoDB positron' for different map styles.
  • Add multiple layers with LayerControl() to toggle features.
  • Keep coordinate data clean — Folium expects [lat, lon] format.

Basically, Folium turns your data into interactive web maps with minimal code. Whether you're plotting points, heat, or regions, it integrates smoothly with Python’s data ecosystem.

The above is the detailed content of How to plot data on a geographical map using Folium in Python?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

RimWorld Odyssey How to Fish
1 months ago By Jack chen
Can I have two Alipay accounts?
1 months ago By 下次还敢
Beginner's Guide to RimWorld: Odyssey
1 months ago By Jack chen
PHP Variable Scope Explained
3 weeks ago By 百草

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Hot Topics

PHP Tutorial
1508
276
How to handle API authentication in Python How to handle API authentication in Python Jul 13, 2025 am 02:22 AM

The key to dealing with API authentication is to understand and use the authentication method correctly. 1. APIKey is the simplest authentication method, usually placed in the request header or URL parameters; 2. BasicAuth uses username and password for Base64 encoding transmission, which is suitable for internal systems; 3. OAuth2 needs to obtain the token first through client_id and client_secret, and then bring the BearerToken in the request header; 4. In order to deal with the token expiration, the token management class can be encapsulated and automatically refreshed the token; in short, selecting the appropriate method according to the document and safely storing the key information is the key.

Python for loop over a tuple Python for loop over a tuple Jul 13, 2025 am 02:55 AM

In Python, the method of traversing tuples with for loops includes directly iterating over elements, getting indexes and elements at the same time, and processing nested tuples. 1. Use the for loop directly to access each element in sequence without managing the index; 2. Use enumerate() to get the index and value at the same time. The default index is 0, and the start parameter can also be specified; 3. Nested tuples can be unpacked in the loop, but it is necessary to ensure that the subtuple structure is consistent, otherwise an unpacking error will be raised; in addition, the tuple is immutable and the content cannot be modified in the loop. Unwanted values can be ignored by \_. It is recommended to check whether the tuple is empty before traversing to avoid errors.

How to parse large JSON files in Python? How to parse large JSON files in Python? Jul 13, 2025 am 01:46 AM

How to efficiently handle large JSON files in Python? 1. Use the ijson library to stream and avoid memory overflow through item-by-item parsing; 2. If it is in JSONLines format, you can read it line by line and process it with json.loads(); 3. Or split the large file into small pieces and then process it separately. These methods effectively solve the memory limitation problem and are suitable for different scenarios.

Can a Python class have multiple constructors? Can a Python class have multiple constructors? Jul 15, 2025 am 02:54 AM

Yes,aPythonclasscanhavemultipleconstructorsthroughalternativetechniques.1.Usedefaultargumentsinthe__init__methodtoallowflexibleinitializationwithvaryingnumbersofparameters.2.Defineclassmethodsasalternativeconstructorsforclearerandscalableobjectcreati

Python for loop range Python for loop range Jul 14, 2025 am 02:47 AM

In Python, using a for loop with the range() function is a common way to control the number of loops. 1. Use when you know the number of loops or need to access elements by index; 2. Range(stop) from 0 to stop-1, range(start,stop) from start to stop-1, range(start,stop) adds step size; 3. Note that range does not contain the end value, and returns iterable objects instead of lists in Python 3; 4. You can convert to a list through list(range()), and use negative step size in reverse order.

Python for Quantum Machine Learning Python for Quantum Machine Learning Jul 21, 2025 am 02:48 AM

To get started with quantum machine learning (QML), the preferred tool is Python, and libraries such as PennyLane, Qiskit, TensorFlowQuantum or PyTorchQuantum need to be installed; then familiarize yourself with the process by running examples, such as using PennyLane to build a quantum neural network; then implement the model according to the steps of data set preparation, data encoding, building parametric quantum circuits, classic optimizer training, etc.; in actual combat, you should avoid pursuing complex models from the beginning, paying attention to hardware limitations, adopting hybrid model structures, and continuously referring to the latest documents and official documents to follow up on development.

Accessing data from a web API in Python Accessing data from a web API in Python Jul 16, 2025 am 04:52 AM

The key to using Python to call WebAPI to obtain data is to master the basic processes and common tools. 1. Using requests to initiate HTTP requests is the most direct way. Use the get method to obtain the response and use json() to parse the data; 2. For APIs that need authentication, you can add tokens or keys through headers; 3. You need to check the response status code, it is recommended to use response.raise_for_status() to automatically handle exceptions; 4. Facing the paging interface, you can request different pages in turn and add delays to avoid frequency limitations; 5. When processing the returned JSON data, you need to extract information according to the structure, and complex data can be converted to Data

python one line if else python one line if else Jul 15, 2025 am 01:38 AM

Python's onelineifelse is a ternary operator, written as xifconditionelsey, which is used to simplify simple conditional judgment. It can be used for variable assignment, such as status="adult"ifage>=18else"minor"; it can also be used to directly return results in functions, such as defget_status(age):return"adult"ifage>=18else"minor"; although nested use is supported, such as result="A"i

See all articles