导入相应的模块必不可少
下面展示一些 内联代码片
。
import re
import math
import pandas as pd
import numpy as np
import folium
import seaborn as sns
from folium.plugins import HeatMap
import matplotlib.pyplot as plt
加载已经获取到的Excel数据
starbuck_df=pd.read_excel('./咖啡厅星巴克和瑞幸.xlsx',sheet_name=0,skiprows=1)
starbuck_df
如图所示在jupyter notebook中加载出来的数据
加载好一个地图
import folium.plugins as plugins
import folium
tiles= 'https://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=7'
m = folium.Map([39.9042,116.4074],#坐标范围自己设置
tiles=tiles ,
attr='高德-常规图',
zoom_start=8,
control_scale=True,
width='100%'
)
m
加载好的地图如图所示:
# 接下来需要再地图上绘制热力图,将星巴克门店的地址绘制在地图上。
# 数据清洗过程
def convert_poi2lis(df):
# poi数据转化为可以绘制热力图的list
for i in range(len(df)):
df.loc[i,'lat']=eval(df.loc[i,'poi'])['lat']
df.loc[i,'lng']=eval(df.loc[i,'poi'])['lng']
poi_lis=[[row['lng'],row['lat']] for index,row in df.iterrows()]
return poi_lis
starbuck_df_poi_lis=convert_poi2lis(starbuck_df)
starbuck_df_poi_lis
得到如下星巴克门店的坐标地址
from folium.plugins import HeatMap
starbuck_heatmap=m
HeatMap(starbuck_df_poi_lis).add_to(starbuck_heatmap)
starbuck_heatmap.save('starbuck_heatmap3.html')
starbuck_heatmap
我们可以看到星巴克门店主要分布的城市:
地图可以缩小放大,缩小后可查看到更详细的地址
这样一个星巴克门店的热力地图就绘制好了。