用python做世界地图
时间: 2023-09-20 18:06:57 浏览: 163
要用 Python 制作世界地图,可以使用一些 Python 第三方库,如 basemap、geopandas、folium 等。
其中,basemap 是专门用来绘制地图的库,可以根据需要选择不同的投影方式、边界范围等参数,生成各种风格的地图。geopandas 可以用来处理地理数据,如读取地图边界、绘制地图上的区域等。folium 则是基于 Leaflet.js 的 Python 库,可以用来生成交互式地图。
下面是一个简单的示例,使用 basemap 和 geopandas 绘制世界地图:
```python
import geopandas as gpd
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
# 读取世界地图的边界数据
world = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
# 创建 basemap 地图对象
m = Basemap(projection='merc', lat_0=0, lon_0=0, resolution='l', area_thresh=1000.0,
llcrnrlon=-180, llcrnrlat=-60, urcrnrlon=180, urcrnrlat=80)
# 绘制地图边界
m.drawcoastlines(linewidth=0.5)
m.drawcountries(linewidth=0.5)
# 绘制国家边界
for index, row in world.iterrows():
geo = row['geometry']
if geo.type == 'Polygon':
x, y = m(*geo.exterior.coords.xy)
plt.plot(x, y, 'k', linewidth=0.5)
elif geo.type == 'MultiPolygon':
for poly in geo:
x, y = m(*poly.exterior.coords.xy)
plt.plot(x, y, 'k', linewidth=0.5)
# 显示地图
plt.show()
```
这段代码首先使用 geopandas 读取了世界地图的边界数据,然后使用 basemap 创建了一个墨卡托投影的地图对象,并绘制了地图边界和国家边界。最后通过 matplotlib 显示出来。
如果需要更多的功能,可以参考各个库的文档和示例代码。
阅读全文