通过basemap,在地图上标记出我国的重庆省份
时间: 2024-10-23 22:03:11 浏览: 35
Basemap Tutorial Documentation.pdf
Basemap是一个Python库,用于创建地理空间图像,常用于科学可视化和GIS应用中。要在地图上标记中国的重庆市,你可以按照以下步骤操作:
1. 首先,确保已经安装了`matplotlib`, `basemap`(已被官方弃用,推荐使用`cartopy`代替),以及`geopandas`等库。如果还没有安装,可以使用pip命令安装:
```
pip install matplotlib cartopy geopandas
```
2. 导入所需的库:
```python
import matplotlib.pyplot as plt
import cartopy.crs as ccrs
from cartopy.feature import NaturalEarthFeature
import geopandas as gpd
```
3. 加载中国行政区划数据:
```python
# 下载中国行政区划数据(GeoPandas可用的数据源)
gdf_china = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
```
4. 筛选出重庆市的数据:
```python
chongqing = gdf_china[gdf_china.name == '重庆']
```
5. 创建 Basemap 或 Cartopy 地图并设置投影:
```python
fig, ax = plt.subplots(figsize=(8, 6), subplot_kw={'projection': ccrs.PlateCarree()})
```
或者使用 Basemap (注意Basemap已不再维护):
```python
import mpl_toolkits.basemap.pyproj as pyproj
m = Basemap(projection='merc', llcrnrlat=29, urcrnrlat=32, llcrnrlon=103,
urcrnrlon=107, resolution='l')
```
6. 在地图上绘制重庆市边界:
```python
if using_cartopy:
chongqing.plot(column='name', ax=ax, facecolor='none', edgecolor='red')
else:
m.drawcoastlines()
m.drawcountries()
m.drawstates()
m.drawcounties()
chongqing.geometry.apply(lambda x: m.plot(x.exterior, color='red'))
```
7. 显示地图:
```python
plt.title('中国重庆市地图')
plt.show()
```
阅读全文