📜  python 地理数据可视化 - Python (1)

📅  最后修改于: 2023-12-03 15:34:10.760000             🧑  作者: Mango

Python 地理数据可视化

Python 地理数据可视化是一种使用 Python 编程语言来绘制地理数据的技术。Python 有许多优秀的地理数据可视化工具,例如 Matplotlib、Basemap、Folium、geopandas 等。

Matplotlib

Matplotlib 是 Python 中最流行的绘图库之一,也支持绘制地图。最基本的地图绘制可以使用 mpl_toolkits.basemap 库来实现。

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

# 创建地图
my_map = Basemap(projection='ortho', lat_0=50, lon_0=-100, resolution='l', area_thresh=1000.)

# 绘制海岸线、国家边界线
my_map.drawcoastlines()
my_map.drawcountries()

# 绘制经纬度线
my_map.drawmeridians(range(0, 360, 30))
my_map.drawparallels(range(-90, 90, 30))

# 显示地图
plt.show()
Basemap

Basemap 是一个基于 Matplotlib 的地图绘制工具,可以实现各种常见的投影方式,例如正射投影、圆柱投影、等面积投影等。同时,Basemap 还提供了许多绘制地图的函数,例如 contour、pcolor、scatter、quiver 等等。

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

# 创建地图
my_map = Basemap(projection='merc', lat_0=0, lon_0=0, resolution='h', area_thresh=1000.)

# 绘制海岸线、国家边界线
my_map.drawcoastlines()
my_map.drawcountries()

# 绘制经纬度线
my_map.drawmeridians(range(0, 360, 30))
my_map.drawparallels(range(-90, 90, 30))

# 绘制散点图
lats = [40.7127, 48.8566, 37.7749, 55.7558]
lons = [-74.0059, 2.3522, -122.4194, 37.6173]
x, y = my_map(lons, lats)
my_map.scatter(x, y, marker='o', color='r', zorder=5)

# 显示地图
plt.show()
Folium

Folium 是 Python 中基于 Leaflet.js 技术的地图可视化工具,可以通过 Python 代码实现绘制交互式地图。Folium 集成了 OpenStreetMap 和 Stamen Maps 数据源,可以灵活地展示地图。

import folium

# 创建地图对象
my_map = folium.Map(location=[48.8566, 2.3522], zoom_start=13)

# 添加标记
folium.Marker([48.8566, 2.3522], popup='<b>Paris</b>').add_to(my_map)

# 显示地图
my_map
geopandas

geopandas 是 Python 中处理地理空间数据的重要工具,和 pandas 稍有不同,geopandas 中的 DataFrame 对象包含了几何形状,可以进行地理操作。geopandas 可以用于读取各种地图数据,例如 shapefile、GeoJSON 等。

import geopandas

# 读取 shapefile 文件
gdf = geopandas.read_file('/path/to/myshapefile.shp')

# 绘制地图
gdf.plot()

# 显示地图
plt.show()

总之,通过 Python 地理数据可视化技术,我们可以很方便地绘制各种地图,并进行数据可视化分析。