python 画地图
时间: 2025-02-19 08:48:33 浏览: 54
### 如何使用Python绘制地理地图
#### 安装必要的库
为了能够顺利地绘制地理地图,需要确保已安装`matplotlib`、`geopandas`以及`descartes`这些库[^1]。如果尚未安装上述库,则可以利用pip来完成安装。
```bash
pip install matplotlib geopandas descartes cartopy
```
#### 绘制基础的地图
一旦完成了所需库的安装,就可以开始着手于简单的地图绘制工作了。这里给出一段基于`geopandas`加载中国江苏省边界并显示其轮廓的例子:
```python
import geopandas as gpd
import matplotlib.pyplot as plt
# 加载江苏全省边界数据
data = gpd.read_file("https://geo.datav.aliyun.com/areas_v3/bound/320000_full.json")
# 创建绘图对象ax,并设置背景颜色为白色
fig, ax = plt.subplots(figsize=(8, 6))
ax.set_facecolor('white')
# 将边界数据显示出来
data.boundary.plot(ax=ax)
plt.title('Jiangsu Province Boundary')
plt.show()
```
这段代码会下载指定URL中的JSON文件作为输入源,解析其中包含的空间信息,并通过调用`.boundary.plot()`方法只展示边界的线条而非填充整个多边形内部区域[^3]。
#### 添加自定义几何形状至地图上
除了单纯地呈现行政区划外,还可以向地图添加额外的信息层,比如特定兴趣区(POI)、路径轨迹或是其他类型的矢量要素。下面是一个例子,它展示了如何在一个矩形范围内画出一条红色折线表示某个虚拟的兴趣范围:
```python
from shapely.geometry import Polygon
# 设定一个矩形框的位置坐标
rect_coords = [(119, 32), (120, 33), (121, 33)]
# 构建Polygon实例
polygon_of_interest = Polygon(rect_coords)
# 在同一张图表中叠加新的几何图形
gpd.GeoSeries([polygon_of_interest.exterior]).plot(ax=ax, color='red', linewidth=2)
plt.show()
```
此部分代码先构建了一个名为`polygon_of_interest`的新多边形对象,接着将其外部边缘以红线的形式渲染到了之前创建好的地图之上。
#### 利用Cartopy增强地图功能
对于更复杂的需求而言,可能还需要借助像`cartopy`这样的专门处理地球科学数据可视化的扩展包。它可以提供更加丰富的投影方式和支持更多的底图样式选项。以下是结合`cartopy`的一个简单案例:
```python
import cartopy.crs as ccrs
import cartopy.feature as cf
# 初始化带有经纬度网格和自然地球风格陆地板块特征的地图
projection = ccrs.PlateCarree()
fig = plt.figure(figsize=(10, 7))
ax = fig.add_subplot(1, 1, 1, projection=projection)
ax.coastlines(resolution='50m') # 显示海岸线
ax.add_feature(cf.LAND) # 填充大陆地区
ax.gridlines(draw_labels=True) # 开启网格标注
# 调整视窗大小适应目标地理位置
ax.set_extent([119, 122, 31, 34], crs=ccrs.PlateCarree())
plt.title('Map with Cartopy and Natural Earth Features')
plt.show()
```
该片段不仅设置了不同的投影模式还加入了基本的地貌元素如海洋、湖泊等,使得最终产出的地图具有更高的可读性和美观程度[^2]。
阅读全文
相关推荐




















