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>