如何用cartopy绘制有地图投影的散点图
时间: 2024-12-13 13:24:00 浏览: 10
要在Cartopy中绘制有地图投影的散点图,首先你需要安装Cartopy、Matplotlib以及相关的地理信息系统库,比如Shapely。以下是步骤:
1. 安装必要的库:
```bash
pip install cartopy matplotlib shapely geopandas
```
2. 导入所需的库:
```python
import cartopy.crs as ccrs
import matplotlib.pyplot as plt
import numpy as np
from shapely.geometry import Point
```
3. 创建一个地理坐标点(例如经纬度):
```python
lon = [-80.0, -75.0] # 西经80度和西经75度
lat = [30.0, 35.0] # 北纬30度和北纬35度
# 创建点对象
points = [Point(xy) for xy in zip(lon, lat)]
```
4. 设置地图投影,这里以常用的Mercator为例:
```python
projection = ccrs.Mercator()
```
5. 创建一个figure并添加地图:
```python
fig = plt.figure(figsize=(10, 6))
ax = fig.add_subplot(projection=projection)
```
6. 添加网格线和背景图:
```python
ax.coastlines(resolution='10m') # 加海洋和陆地边界线
ax.stock_img() # 加入世界地图背景
```
7. 绘制散点图:
```python
ax.scatter(points, transform=ccrs.Geodetic(), s=100, color='red')
```
8. 显示地图:
```python
plt.title('Mercator Projection with Scatterplot')
plt.show()
```
以上代码将生成一张带有Mercator投影的散点图,散点代表给定的经纬度位置。
阅读全文