700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Python生成城市热力图

Python生成城市热力图

时间:2021-05-02 23:46:54

相关推荐

Python生成城市热力图

Python生成城市热力图

前言1.导入数据2.提取数据3.生成热力图且保存4.打开html文件结果展示资源下载:

前言

这是一个利用folium包将GDP.xls文件内的信息加工成热力图的示例过程

1.导入数据

导入必要的包以及将GDP数据读入,其中numpy和pandas都是处理数据时常用的包

folium是地图包,提供绘制热力图以及链接到地图上的函数

GDP文件中有我们需要的城市名、城市经纬度和城市GDP和人数

import numpy as npimport pandas as pdimport folium #地图信息from folium.plugins import HeatMapimport webbrowser #用于生成网页显示data = pd.read_excel(r"GDP.xls") #使用 pandas 库读入待处理的 Excel 文件

2.提取数据

将data中我们需要的数据提取出来,在这个例子里我们一共处理100个城市的平均GDP,由于在文件中只有人数和城市总GDP,我们需要将其转化为人均GDP

cityNum = 100 # 共分析100座城市lat = np.array(data["LAT"][0:cityNum]) # 获取纬度值lon = np.array(data["LON"][0:cityNum]) # 获取经度值pop = np.array(data["POP"][0:cityNum], dtype=float) # 获取人口数,转化为浮点型gdp = np.array(data["GDP"][0:cityNum], dtype=float) # 获取 GDP,转化为浮点型gdpAverage = np.array(data["GDP_Average"][0:cityNum],dtype=float) # 获取人均 GDP,转化为浮点型

3.生成热力图且保存

第一行将一个城市的经纬度和平均GDP制成一个列表,这个平均GDP就是我们在制作热力图时的权重

folium.Map函数将一张地图导入进来,location为地图中心位置,zoom_start为缩放比,这个数值越大,放大程度越高

HeatMap(data).add_to(mapData)这行代码将我们的热力图添加到了地图中

最后保存我们的热力图html文件,到时候打开就可以了

# 将数据制作成[纬度, 经度, 权重]的形式data = [[lat[i], lon[i], gdpAverage[i]] for i in range(cityNum)] # 生成地图数据,初始缩放程度为6倍mapData = folium.Map(location=[35, 110], zoom_start=6) # 将热力图添加到地图里HeatMap(data).add_to(mapData) # 将结果保存为 html(网页)文件filePath = r"GDP_HeatMap.html"mapData.save(filePath)

4.打开html文件

# 使用默认浏览器打开网页webbrowser.open(filePath)

结果展示

资源下载:

资源下载:热力图原始资源

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。