使用Python分析出租车轨迹热点交互网络并进行可视化展示

本文介绍如何使用Python分析出租车轨迹数据中的热点交互网络,并使用folium库进行可视化展示。示例代码展示了如何利用pandas、geopandas等库读取数据、计算位置出现次数、创建地图以及添加热点交互网络和标记。

示例代码:

import pandas as pd
import geopandas as gpd
import folium

# 读入数据
df = pd.read_csv('taxi_data.csv')

# 转换为GeoDataFrame
gdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df['经度'], df['纬度']))

# 计算每个位置的出现次数
counts = gdf.groupby('geometry').size().reset_index(name='count')

# 选出出现次数最多的10个位置
top10 = counts.sort_values('count', ascending=False).head(10)

# 创建地图
m = folium.Map(location=[30.67, 104.06], zoom_start=11)

# 添加热点交互网络
folium.plugins.HeatMap(top10[['geometry', 'count']], radius=10).add_to(m)

# 添加标记
for i, row in top10.iterrows():
    folium.Marker(location=[row['geometry'].y, row['geometry'].x],
                  popup=f'Count: {row['count']}').add_to(m)

# 展示地图
m

代码解释:

  1. 读入数据: 使用pandas库读入csv文件,其中包含纬度、经度、时间等数据。
  2. 转换为GeoDataFrame: 使用geopandas库将数据转换为GeoDataFrame,便于后续的地理位置计算和可视化。
  3. 计算每个位置的出现次数: 使用groupby函数按位置进行分组,并计算每个组的大小(即出现次数)。
  4. 选出出现次数最多的10个位置: 按出现次数排序,选取前10个位置。
  5. 创建地图: 使用folium库创建一个地图,中心点为成都市,缩放级别为11。
  6. 添加热点交互网络: 使用folium.plugins.HeatMap函数添加热点交互网络,传入出现次数最多的10个位置的数据。
  7. 添加标记: 使用folium.Marker函数为每个位置添加标记,显示出现次数。
  8. 展示地图: 使用m变量的show方法展示地图。

注意事项:

这段代码只是一个示例,实际应用中可能需要进行更多的数据清洗、地理位置计算和可视化样式调整等工作。

更多参考:

Python分析出租车轨迹热点交互网络并可视化

原文地址: https://www.cveoy.top/t/topic/n0Vh 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录