用python画地图数据分布热力图
时间: 2025-06-28 20:17:08 浏览: 11
### 创建地理数据热力图
为了创建中国各省份2023年GDP的热力图并实现交互功能,可以利用`geopandas`来处理地理边界文件以及管理地理数据,并借助`matplotlib`来进行图形渲染。对于具体的交互效果,比如点击显示具体数值,则可能还需要引入其他工具包辅助完成。
#### 安装必要的库
确保已安装所需的Python库,如果尚未安装这些库,可通过命令行执行如下指令进行安装[^1]:
```bash
pip install matplotlib geopandas descartes
```
#### 加载与中国省界有关的数据集
通常情况下,可以从官方渠道获取到最新的省级行政区划矢量数据(如GeoJSON格式),这里假设已经有了这样的数据源:
```python
import geopandas as gpd
# 假设有一个名为'china_provinces.geojson'的本地文件存储着中国的省级行政区域信息
gdf = gpd.read_file('data/china_provinces.geojson')
print(gdf.head())
```
#### 准备经济指标数据并与地理位置关联起来
准备一份包含各省名称及其对应2023年度GDP总量的数据表,并将其转换成Pandas DataFrame对象以便于后续操作;接着通过共同字段(例如省份名)将此表格与前面读取的空间几何特征相连接形成一个新的Geoseries结构体。
```python
import pandas as pd
# 构建简单的模拟数据框表示每省的GDP情况
gdp_data = {'province': ['北京', '天津', '河北'], 'gdp_2023': [36102, 17489, 42370]} # 示例数据
df_gdp = pd.DataFrame(data=gdp_data)
# 将 GDP 数据加入 GeoDataFrame 中
merged_df = gdf.merge(df_gdp, how="left", left_on='name', right_on='province') # name 是 geojson 文件中的列名
```
#### 绘制带有颜色渐变的地图
设置好配色方案之后就可以调用plot方法绘制出带色彩填充的地图了,在这一步骤里还可以自定义诸如标题、坐标轴标签等样式属性。
```python
import matplotlib.pyplot as plt
fig, ax = plt.subplots(1, figsize=(10, 6))
merged_df.plot(column='gdp_2023', cmap='YlOrRd', linewidth=0.8, ax=ax, edgecolor='0.8')
ax.axis('off') # 不展示坐标系
plt.title("2023年中国各省市GDP分布")
sm = plt.cm.ScalarMappable(cmap='YlOrRd', norm=plt.Normalize(vmin=min(merged_df['gdp_2023']), vmax=max(merged_df['gdp_2023'])))
cbar = fig.colorbar(sm)
plt.show()
```
上述代码片段展示了如何基于给定的GEOJSON文件和相应的统计数据构建一张具有视觉冲击力的地图图表。
关于更复杂的交互特性——当用户单击某个特定地区时弹窗显示出该地区的详细统计资料,这类需求往往超出了纯`matplotlib`的能力范围之外,建议考虑采用专门针对Web端开发的地图API服务或是探索像Folium这样支持folium.Map().add_child(folium.ClickForMarker())特性的第三方扩展模块来达成目的。
阅读全文
相关推荐


















