人口热力图Python代码
时间: 2024-07-14 12:01:22 浏览: 213
人口热力图(也称为人口密度地图或人口分布图)是一种数据可视化工具,用于显示某个地区不同区域的人口数量密集程度。在 Python 中,你可以使用一些库如 `geopandas`、`folium` 和 `pandas` 来创建这样的地图。这里是一个简单的示例代码:
```python
# 首先安装所需的库
!pip install geopandas folium pandas requests
import pandas as pd
import geopandas as gpd
from folium.plugins import HeatMap
# 假设你有一个包含经度和纬度以及人口数的数据文件,例如 'population_data.csv'
data = pd.read_csv('population_data.csv')
# 将数据转换为GeoDataFrame,地理坐标列通常为 'longitude' 和 'latitude'
gdf = gpd.GeoDataFrame(data, geometry=gpd.points_from_xy(data['longitude'], data['latitude']))
# 加载地图底图(比如世界地图)
world_map = gpd.read_file(gpd.datasets.get_path('naturalearth_lowres'))
# 创建热力图,并合并到地图上
merged_gdf = world_map.merge(gdf, on='GEOID', how='left') # 假设GEOID是两个数据集的共同字段
heatmap_data = merged_gdf[['geometry', 'population']]
# 创建热力图
m = folium.Map(location=[heatmap_data.geometry.centroid.y.mean(), heatmap_data.geometry.centroid.x.mean()], zoom_start=2)
HeatMap(heatmap_data[['population']], radius=10).add_to(m)
# 显示地图
m.save("heatmap.html") # 保存到本地文件,也可以直接打开浏览器查看
```
这个代码片段假设你已经有了适当格式的数据,并且已经设置了合适的地图中心点和缩放级别。实际操作中,你需要根据自己的数据源调整读取数据的部分。
阅读全文