这次呢,我想讲讲地图可视化的内容,以前我也写过用Python的内置库绘制地图,但总感觉不够美观。如何才能在短时间内制作漂亮的可视化地图呢,我觉得Python+可视化工具是不错的选择。
以下动态可视化地图就是J哥亲手绘制,展现了一段时间内广州市企事业单位在网上商城采购商品的分布及随时间的变化。
接下来,J哥将手把手教你如何绘制这个动态图,您可在公众号后台回复「cc」获取数据集进行测试。
数据准备
第一步,打开并预览一下数据集,共766条采购记录,包含采购时间、采购单位和采购金额3个字段。
df = pd.read_excel('cc.xls',index=False)
df.head()
第二步,根据采购单位字段获取经纬度,批量获取经纬度的方法很多。
def gaode(addr):
para = {
'key':'你的',
'address':addr
}
url = 'https://restapi.amap.com/v3/geocode/geo?'
req = requests.get(url,para)
req = req.json()
print('-' * 30)
if req['status']=='1':
if len(req['geocodes']) > 0:
m = req['geocodes'][0]['location']
print(m)
else:
print("None")
m = ""
else:
print("None")
return m
gaode(addr="广州")
应用以上函数并预览数据
df['lat_lon'] = df['buyer'].apply(gaode)
df.head()
长这样:
第三步,对经纬度字段分列并存储为csv格式。
df["lat"] = df["lat_lon"].str.split(',',expand=True)[1]
df["lon"] = df["lat_lon"].str.split(',',expand=True)[0]
df = df.drop('lat_lon',axis=1)
df.to_csv('cc.csv',index=False)
简单三步数据准备完毕,数据预览如下:
数据可视化
将以上数据可视化到地图中的方法也有很多,比如Ecahrts、高德地图可视化平台、地图无忧等,本次主要介绍kepler.gl。
kepler.gl是由Uber开发的进行空间数据可视化的开源工具,是Uber内部进行空间数据可视化的默认工具,通过其面向Python开放的接口包keplergl,我们可以在 jupyter notebook 中通过书写Python代码的方式传入多种格式的数据,在其嵌入notebook的交互窗口中使用其内建的多种丰富的空间数据可视化功能。可以让你不需要任何编程基础,即可实现数据地图的可视化。Kepler.gl 支持的数据格式:CSV、GeoJson 和Json。
一、Jupyter中可视化
1.本地安装
pip install keplergl
注:Windows用户建议conda安装,否则很可能报错。
2.加载地图和数据
二、在线网站中可视化(推荐)
当然,你也可以直接在kepler官网中上传数据操作,但官网速度较慢,建议用如下网站操作:
http://map.guihuayun.com/ #规划云网站搭的一个镜像
打开网站后,首先将cc.csv数据集添加进来。
添加好数据后,可以根据自己的喜好进行图标颜色、大小、地图样式等参数设置。
1.图标设置
2.地图样式更改
3.添加城市轮廓
城市轮廓数据可以在DATAV.GeoAtlas网站进行获取。
4.上传轮廓数据
OK,大功告成!
当然,我们还可以利用同样的数据集制作成热力图、3D地图等。关键是,如此便捷实用又美观的地图可视化工具竟然免费!感觉它比目前市面上很多付费工具还要给力。
感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典