Python互动地图制作:使用geopandas、shapely和folium可视化Excel数据

作者:4042024.01.17 13:17浏览量:3

简介:本文将介绍如何使用Python的geopandas、shapely和folium库,将Excel数据可视化为交互式地图。通过此方法,您可以轻松地在地图上分析和展示数据。

千帆应用开发平台“智能体Pro”全新上线 限时免费体验

面向慢思考场景,支持低代码配置的方式创建“智能体Pro”应用

立即体验

在Python中,有许多库可以帮助我们创建交互式地图。其中,geopandas、shapely和folium是常用的三个库。首先,我们需要确保安装了这些库。如果没有安装,可以通过以下命令安装:

  1. geopandas: pip install geopandas
  2. shapely: pip install shapely
  3. folium: pip install folium
    下面是一个简单的例子,演示如何使用这些库将Excel数据可视化为交互式地图。
    步骤1:读取Excel数据
    首先,我们需要读取Excel文件中的数据。可以使用pandas库来完成这个任务。假设我们的Excel文件名为data.xlsx,并且我们想要读取名为Sheet1的工作表。
    1. import pandas as pd
    2. data = pd.read_excel('data.xlsx', sheet_name='Sheet1')
    步骤2:地理编码
    在可视化的过程中,我们需要将地理数据(例如城市、经纬度等)转换为地理对象,这样才能在地图上显示。这需要使用geopandas和shapely库。
    首先,我们需要将经纬度数据转换为GeoDataFrame格式,并指定其坐标系为WGS84(即GPS坐标系)。然后,我们可以使用geopandas的map_locations函数将GeoDataFrame中的经纬度转换为实际的地标名称(如城市名称)。在这个过程中,我们可以使用shapely的Point类和fiona的open函数来读取shapefile文件(包含地标名称和经纬度的文件)。
    1. import geopandas as gpd
    2. from shapely.geometry import Point
    3. from fiona.crs import from_epsg
    4. gdf = gpd.GeoDataFrame(data, geometry=gpd.points_from_xy(data['longitude'], data['latitude']))
    5. gdf.crs = from_epsg(4326)
    6. gdf = gdf.map_locations(lambda x: Point(x.x, x.y))
    步骤3:创建交互式地图
    最后,我们可以使用folium库来创建交互式地图。首先,我们需要创建一个Map对象,并设置其中心点坐标和缩放级别。然后,我们可以使用GeoJson格式将GeoDataFrame中的数据添加到地图上。最后,我们可以通过添加标记、热图等来进一步美化地图。
    1. m = folium.Map(location=[data['latitude'].mean(), data['longitude'].mean()], zoom_start=5)
    2. m.geo_json(geo_data=gdf, popup=True, line_opacity=0.6)
    3. m.save('map.html')
    以上就是使用Python的geopandas、shapely和folium库将Excel数据可视化为交互式地图的简单步骤。在实际应用中,您可能需要根据具体的数据和需求进行一些调整。希望这个例子能帮助您开始使用这些库来创建交互式地图。
article bottom image

相关文章推荐

发表评论