python ['ID', 'LO','LA'] 'LO','LA'为经纬度,在百度地图上绘制出热力图力图
时间: 2024-10-19 17:02:45 浏览: 35
在Python中,你可以使用`geopandas`库结合`folium`库来绘制基于经纬度`['LO', 'LA']`数据的热力图。首先,你需要安装这两个库,如果尚未安装可以使用`pip install geopandas folium`。
以下是基本步骤:
1. **导入所需库**:
```python
import pandas as pd
import geopandas as gpd
from folium.plugins import HeatMap
```
2. **创建GeoDataFrame**:
确保你有一个包含'LO'(经度)和'LA'(纬度)以及其他必要信息的数据框,并将其转换为GeoDataFrame。例如:
```python
data = {'ID': [1, 2, 3], 'LO': [-118.24, -122.4194, -122.4534], 'LA': [34.0522, 47.6062, 37.7749]}
df = pd.DataFrame(data)
gdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df['LO'], df['LA']), crs='epsg:4326')
```
3. **设置地图范围**:
使用`gdf.total_bounds`确定整个数据集覆盖的地图边界,以便设置合适的视图范围:
```python
bounds = gdf.total_bounds
```
4. **创建热力图**:
创建一个新的 Folium 地图,并添加热力图插件:
```python
m = folium.Map(location=[bounds[1], bounds[3]], zoom_start=10, tiles='OpenStreetMap')
HeatMap(data=list(zip(gdf['LO'], gdf['LA'])), radius=15).add_to(m)
```
这里`radius`参数影响每个点的半径大小,可以根据实际需求调整。
5. **显示地图**:
```python
m.save('heatmap.html') # 将地图保存到html文件
m
```
阅读全文