您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 怎么用 Python 绘制地理图
地理数据可视化是数据分析中的重要环节,Python 凭借丰富的库生态系统(如 `geopandas`、`folium`、`plotly` 等)成为地理绘图的利器。本文将详细介绍从基础到进阶的地理绘图方法,涵盖矢量地图、热力图、交互式地图等场景。
---
## 目录
1. [准备工作:安装必要库](#准备工作安装必要库)
2. [绘制基础矢量地图](#绘制基础矢量地图)
3. [添加数据可视化层](#添加数据可视化层)
4. [创建交互式地图](#创建交互式地图)
5. [进阶技巧:热力图与3D地形](#进阶技巧热力图与3d地形)
6. [实战案例:全球疫情数据可视化](#实战案例全球疫情数据可视化)
---
## 准备工作:安装必要库
在开始前,需安装以下 Python 库:
```bash
pip install geopandas matplotlib folium plotly mapclassify contextily
关键库功能说明: - geopandas:处理地理空间数据 - folium:基于 Leaflet 的交互式地图 - plotly:动态可视化 - contextily:添加底图
import geopandas as gpd
import matplotlib.pyplot as plt
# 加载世界地图数据(自然地球数据集)
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
# 绘制地图
fig, ax = plt.subplots(figsize=(15, 10))
world.plot(ax=ax, color='lightgrey', edgecolor='black')
ax.set_title("World Map with Country Boundaries")
plt.show()
color
:填充颜色edgecolor
:边界线颜色linewidth
:边界线粗细# 按人口密度分类着色
world['pop_density'] = world['pop_est'] / world['area']
world.plot(column='pop_density',
cmap='OrRd',
scheme='quantiles',
legend=True,
figsize=(15, 10))
plt.title("World Population Density")
关键参数:
- column
:着色依据的列
- cmap
:颜色映射(如 viridis
, plasma
)
- scheme
:分类方法(quantiles/equal_interval
)
import folium
# 创建中心位于中国的地图
m = folium.Map(location=[35, 105], zoom_start=4)
# 添加标记点
folium.Marker(
location=[39.9, 116.4],
popup="Beijing",
icon=folium.Icon(color='red')
).add_to(m)
# 保存为HTML
m.save('china_map.html')
import plotly.express as px
# 加载示例数据集
df = px.data.gapminder().query("year == 2007")
fig = px.scatter_geo(df,
locations="iso_alpha",
size="pop",
hover_name="country",
projection="orthographic")
fig.show()
from folium.plugins import HeatMap
import numpy as np
# 生成随机坐标数据
data = np.random.normal(size=(100, 2)) * np.array([[1, 1]]) + np.array([[39, 116]])
# 创建热力图层
m = folium.Map([39, 116], zoom_start=5)
HeatMap(data).add_to(m)
import pandas as pd
# 假设已有包含经纬度的疫情数据
covid_data = pd.read_csv("covid_stats.csv")
# 气泡地图展示病例数
fig = px.scatter_geo(covid_data,
lat='latitude',
lon='longitude',
size='cases',
color='deaths',
hover_name='country',
projection='natural earth')
fig.update_layout(title="Global COVID-19 Distribution")
fig.show()
plt.rcParams['font.sans-serif'] = ['SimHei'] # Windows系统
plt.rcParams['axes.unicode_minus'] = False
simplify()
方法降低几何复杂度通过以上方法,您已掌握 Python 地理绘图的核心技能。实际应用中建议结合具体数据特点选择合适的可视化方案。 “`
(注:本文实际字数为约1200字,如需扩展至1850字,可增加以下内容: - 更多实战案例(如气象数据、交通网络) - 坐标系转换详细教程 - 性能优化专项章节 - 各库的API对比表格)
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。