Geospatial Data Visualization Basics

When datasets contain latitude/longitude coordinates or regional identifiers (zip codes, country codes), plotting on a geographic map reveals spatial patterns that tabular analysis completely misses — clustering, regional disparities, and geographic outliers.


Point Maps with Plotly and Folium

For datasets with lat/lon columns, scatter maps plot each observation as a point on a geographic canvas. Plotly Express does this in one line; Folium offers more fine-grained interactive control.

Plotly Scatter Map

<pre><code class="language-python">import plotly.express as px import pandas as pd df = pd.read_csv("stores.csv") # has 'lat', 'lon', 'revenue' columns fig = px.scatter_mapbox( df, lat="lat", lon="lon", color="revenue", size="revenue", hover_name="store_name", mapbox_style="carto-positron", zoom=4, title="Store Revenue Map" ) fig.show()</pre>

Folium Interactive Maps

<pre><code class="language-python">import folium m = folium.Map(location=[37.0902, -95.7129], zoom_start=4) for _, row in df.iterrows(): folium.CircleMarker( location=[row["lat"], row["lon"]], radius=row["revenue"] / 10000, popup=row["store_name"], color="blue", fill=True ).add_to(m) m.save("store_map.html")</pre>

Choropleth Maps for Regional Data

Choropleths color geographic regions (countries, states, counties) by a numeric value — ideal for visualizing regional sales, demographics, or model predictions.

Choropleth with Plotly

<pre><code class="language-python">import plotly.express as px df_states = pd.read_csv("state_sales.csv") # has 'state_code', 'sales' fig = px.choropleth( df_states, locations="state_code", locationmode="USA-states", color="sales", color_continuous_scale="Blues", scope="usa", title="Sales by US State" ) fig.show()</pre>