
宋星云 中国科学院心理研究所硕士,R语言爱好者。坚信数据是21世纪的新能源,用可靠的数据、可靠的方法,讲可靠的故事,下可靠的结论。
公众号:星云实验室
哪里人流量大,哪里商业价值高,肯德基就会开到哪里。肯德基在选址时会做大量的工作,收集大量资料确定商圈价值。因此,肯德基密度是衡量商圈价值重要的风向标之一。
笔者在来北京求学前,听说实验室离鸟巢很近,便推测这里一定是北京城最繁华最热闹的区域,研究生生活一定能很幸福。然而在来这里后,没想到不仅交通非常不便,而且,竟然如此让人专(qing)心(xin)求(gua)学(yu)!附近连最近的肯德基都要坐2站公交!(╯‵□′)╯︵┻━┻
因此,笔者想看看,北京的肯德基都在哪里,北京最繁华的地方都在哪里!
首先,我们要获取北京市肯德基各门店的地址呢。GitHub中的包baidumap提供了一个简单的解决方案,申请百度地图的开发者权限后,调用百度地图api就可以爬取了。
library(dplyr)
library(ggmap)
library(baidumap)
options(baidumap.key = '申请的密钥')
# 计算全距,取5%~95%的数据,按照排除3个标准差以外的数据----
range.std<-function(x,alpha=0.05){
lower<-quantile(x,alpha)
upper<-quantile(x,1-alpha)
mysd<-x[x>lower & x<upper] %>% sd
mymean<-x[x>lower & x<upper] %>% mean
lower2<-mymean-3*mysd
upper2<-mymean+3*mysd return(c(lower2,upper2))
}
# 读取城市某目标的地址信息 ---
city_what<-function(city,place="肯德基"){
#获取主城区肯德基坐标
position.K_raw0<-getPlace(place=place,city) #获取raw data
#删除过于偏远的门店
position.K_raw0<-subset(position.K_raw0,
range.std(lat,0.1)[1]<=lat & lat<=range.std(lat,0.1)[2] &
range.std(lon,0.1)[1]<=lon & lon<=range.std(lon,0.1)[2])
position.K_raw0<-arrange(position.K_raw0,lon,lat)
# 确定各城市的坐标范围
mydf<-position.K_raw0
range.lat<-range(mydf$lat)
range.lon<-range(mydf$lon)
mylist<-list(positionKFC=mydf,
lat=range.lat,
lon=range.lon,
center=c(mean(range.lat),mean(range.lon)),
width_lat=range.lat[2]-range.lat[1],
width_lon=range.lon[2]-range.lon[1])
return(mylist)
}
mycity<-"北京"
KFC_beijing<-city_what(mycity,place="肯德基")
现在我们已经获取了北京市肯德基的门店地址信息,现在需要获取合适尺寸的北京市地图。虽然baidumap
包同样可以获取北京市地图,但是,百度地图的配色真的好难受啊(╯‵□′)╯︵┻━┻ 于是笔者使用了ggmap
中默认的谷歌地图
library(ggplot2)
getMap<-function(mycity_t,
maptype = "roadmap",#获取北京市道路地图
color="bw", #黑白
zoom=11,...){ #mycity_t输入city_what返回的list
p<-get_map(mycity_t$center %>% rev,maptype=maptype,color=color,zoom=zoom,...)
p<-ggmap(p)+
scale_x_continuous(limits = mycity_t$lon, expand = c(0, 0)) +
scale_y_continuous(limits = mycity_t$lat, expand = c(0, 0)) +
theme_nothing() return(p)
}
map_beijing<-getMap(KFC_beijing)
最后综合门店地址与北京市地图,大功告成!
library(RColorBrewer)#配色
library(ggimage)#添加icon图标
map_KFC_beijing<-
map_beijing +
geom_image(data=KFC_beijing$positionKFC,
mapping=aes(lon, lat),
image="apps_kfc_32px_547511_easyicon.net.png",
size=0.02) +
stat_density2d(data=KFC_beijing$positionKFC,
mapping=aes(x=lon, y=lat,
fill=stat(level),alpha=stat(level)),
geom="polygon",
show.legend = F)+
scale_fill_distiller(palette = "RdYlGn")+
scale_alpha_continuous(range=c(0.05,0.25))
map_KFC_beijing
在图中,颜色的热度代表了肯德基分布的热度。可以明显看出,北京拥有两块较大的商圈:
西城区与朝阳区交界处
该区域涵盖了北京的地标天安门广场、故宫博物馆等旅游景点,北京站等交通要塞,北京医院、北京协和医院等重要基础设施,西单、王府井的重要商圈。此处不仅承担大量的城市功能,而且游客众多,是北京市人流量最大的区域。
海淀区中关村区域
该区域涵盖了北京颐和园、圆明园两处最著名的旅游景点,清华北大两所最重要的高等学府,中关村一处重要的科技园区。此处同样是北京一日游必去之地,景点集中且游客众多;高校密度高,且毗邻中关村科技园区,同样也是文化教育科技中心。
而笔者实验室所在的奥运村(大屯地区),从图中可以看出正好夹在了两大商区的谷底,虽然空间位置上并不偏僻,但是该区域承担的功能较为单一,人流量也因此受到了限制。

那么,让我们看看中国其他大城市的肯德基的分布吧!
上海

广州

深圳

杭州

成都

苏州

肯德基来到中国已经30年了,和我们90后一起成长,一起从稚嫩走向成熟。可以说,现在肯德基已经完全融入了中国人的生活。同样的,国家在进步,城市也在发展,肯德基也在随着城市的发展而变迁。
记得小时候,坐上半小时的公交车去吃一顿肯德基都是幸福的事,随着城市的发展与变革,小苏州成了大苏州,肯德基也多了起来。原来贫瘠的金鸡湖已成为苏州重要的商圈,肯德基也成为了湖东圆融天幕一处重要的地标。
反过来,肯德基的发展状况易获取、易量化,我们也能从中侧面看出城市的发展。
大家都在看
公众号后台回复关键字即可学习
回复 爬虫 爬虫三大案例实战
回复 Python 1小时破冰入门回复 数据挖掘 R语言入门及数据挖掘
回复 人工智能 三个月入门人工智能
回复 数据分析师 数据分析师成长之路
回复 机器学习 机器学习的商业应用
回复 数据科学 数据科学实战
回复 常用算法 常用数据挖掘算法