SoFunction
Updated on 2025-04-11

Handling geodata visualization using Python Matplotlib

introduction

Geographic data visualization is an important area in data science, which helps us understand and analyze data related to geographic location. Python provides powerful tools to process geographic data, where Matplotlib is a popular drawing library that combines other libraries to achieve high-quality geographic visualization. This article will introduce how to use Python Matplotlib to process geodata visualization, including basic concepts, common libraries, data processing, and actual cases.

1. What is geographic data visualization?

Geographic data visualization is to display data related to geographic location through graphical means. It can help people understand spatial relationships and patterns in data more intuitively. For example, we can use maps to show information on population density, temperature changes or crime rates in different cities.

2. Basic concepts of geographic data

Before we start, we need to understand some basic geodata concepts:

2.1 Geographic coordinate system

Geographic coordinate systems are used to represent the location of the Earth's surface and are usually described using longitude and latitude. Longitude refers to the angle of a point on the earth's surface relative to the prime meridian, ranging from -180° to 180°; latitude refers to the angle of a point relative to the equator, ranging from -90° to 90°.

2.2 Data format

Geographic data usually exists in multiple formats, and the following are some common formats:

  • CSV Files: Usually used to store tabular data, which can contain latitude and longitude information.
  • GeoJSON: A JSON format for representing geographical features, supporting points, lines, and polygons.
  • Shapefile: A common geographic information system (GIS) data format, usually used with GIS software.

3. Use Matplotlib for geographic data visualization

Although Matplotlib is a common drawing library, we can visualize geographic data by combining other libraries such as Basemap and Cartopy.

3.1 Install the required libraries

Before you begin, make sure you have Matplotlib, Basemap, or Cartopy installed. You can use the following command to install:

pip install matplotlib
pip install basemap
pip install cartopy

3.2 Use Basemap to draw a map

Basemap is an extension of Matplotlib for maps. Here is an example of creating a basic world map:

import  as plt
from mpl_toolkits.basemap import Basemap

# Create a new graphic(figsize=(10, 7))

# Create Basemap objectm = Basemap(projection='lcc', resolution='h', lat_0=20, lon_0=0)

# Map coastlines and national borders()
()

# Fill the mainland(color='lightgray', lake_color='aqua')

# Add a title('World Map with Basemap')

# Show graphics()

3.3 Drawing city locations

Suppose we have a set of latitude and longitude data for cities and want to mark these cities on the map. The following code can be used:

# City latitude and longitude datacities = {
    'New York': (-74.006, 40.7128),
    'Los Angeles': (-118.2437, 34.0522),
    'Chicago': (-87.6298, 41.8781),
    'Houston': (-95.3698, 29.7604),
    'Phoenix': (-112.074, 33.4484)
}

# Create a new graphic(figsize=(10, 7))

# Create Basemap objectm = Basemap(projection='lcc', resolution='h', lat_0=20, lon_0=0)

# Map coastlines and national borders()
()

# Fill the mainland(color='lightgray', lake_color='aqua')

# Mark the cityfor city, (lon, lat) in ():
    x, y = m(lon, lat)
    (x, y, 'bo', markersize=10)  # Use blue dots to represent the city    (x, y, city, fontsize=12, ha='left')

# Add a title('City Locations in the USA')

# Show graphics()

3.4 Draw a map using Cartopy

Cartopy is a more modern library that provides more powerful and flexible mapping capabilities. Here is an example of using Cartopy to create a basic world map:

import  as plt
import  as ccrs

# Create a new graphic(figsize=(10, 7))

# Create a map using PlateCarree projectionax = (projection=())

# Map coastlines and national borders()
ax.add_feature(, linestyle=':')

# Add a title('World Map with Cartopy')

# Show graphics()

3.5 Drawing city locations

The code for drawing city locations using Cartopy is as follows:

# City latitude and longitude datacities = {
    'New York': (-74.006, 40.7128),
    'Los Angeles': (-118.2437, 34.0522),
    'Chicago': (-87.6298, 41.8781),
    'Houston': (-95.3698, 29.7604),
    'Phoenix': (-112.074, 33.4484)
}

# Create a new graphic(figsize=(10, 7))

# Create a map using PlateCarree projectionax = (projection=())

# Map coastlines and national borders()
ax.add_feature(, linestyle=':')

# Mark the cityfor city, (lon, lat) in ():
    (lon, lat, 'ro', markersize=8, transform=())  # Use red dots to represent the city    (lon, lat, city, fontsize=12, ha='left', transform=())

# Add a title('City Locations in the USA')

# Show graphics()

4. Process more complex geographic data

In addition to simple point marking, you may also need to deal with more complex geographic data such as polygons, heatmaps, and trajectories. This usually involves using the GeoPandas library, a Pandas extension for processing geodata.

4.1 Install GeoPandas

Install GeoPandas using the following command:

pip install geopandas

4.2 Loading and plotting geographic data using GeoPandas

Here is an example of loading and drawing a world map using GeoPandas:

import geopandas as gpd
import  as plt

# Load world map dataworld = gpd.read_file(.get_path('naturalearth_lowres'))

# Create a graphfig, ax = (figsize=(15, 10))

# Draw a map(ax=ax, color='lightgrey', edgecolor='black')

# Add a title('World Map with GeoPandas')

# Show graphics()

4.3 Processing properties of geographic data

GeoPandas allows you to easily process attribute information of geographic data. For example, you can select and draw a specific region by country:

# Filter out specific countriescountries = world[world['continent'] == 'Asia']

# Create a graphfig, ax = (figsize=(15, 10))

# Draw a map(ax=ax, color='lightgreen', edgecolor='black')

# Add a title('Asian Countries')

# Show graphics()

5. Create a heat map

Thermogram is a commonly used geographic data visualization method that can effectively display the density distribution of data. Here is an example showing how to create a heat map using Matplotlib and GeoPandas.

5.1 Generate random data

We first need to generate some random data as the basis for the heat map:

import numpy as np
import pandas as pd

# Generate random latitude and longitude datanum_points = 1000
lon = (-180, 180, num_points)
lat = (-90, 90, num_points)

# Create DataFramedata = ({'lon': lon, 'lat': lat})

5.2 Using the heat map

Next, we create a heatmap using GeoPandas and Matplotlib:

import  as plt
import geopandas as gpd
from  import gaussian_kde

# Load world map dataworld = gpd.read_file(.get_path

('naturalearth_lowres'))

# Create a graphfig, ax = (figsize=(15, 10))

# Draw a world map(ax=ax, color='lightgrey', edgecolor='black')

# Calculate densitykde = gaussian_kde([lon, lat])
xgrid = (-180, 180, 100)
ygrid = (-90, 90, 100)
X, Y = (xgrid, ygrid)
Z = kde(([(), ()])).reshape()

# Draw a heat map(Z, extent=(-180, 180, -90, 90), origin='lower', cmap='Reds', alpha=0.5)

# Add a title('Heatmap of Random Points')

# Show graphics()

6. Summary

In this article, we describe how to use Python and Matplotlib to handle geodata visualization. By combining libraries such as Basemap, Cartopy, and GeoPandas, we are able to draw basic maps, mark city locations, process complex geographic data, and create heat maps. Geographic data visualization is widely used, including urban planning, public health, climate change and other fields.

The above is the detailed content of using Python Matplotlib to process geographic data visualization. For more information about Python Matplotlib data visualization, please follow my other related articles!