Python可视化工具如何实现动态图表


Posted in Python onOctober 23, 2020

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理

以下文章来源于菜J学Python ,作者J哥

前言

这次呢,我想讲讲地图可视化的内容,以前我也写过用Python的内置库绘制地图,但总感觉不够美观。如何才能在短时间内制作漂亮的可视化地图呢,我觉得Python+可视化工具是不错的选择。

以下动态可视化地图就是J哥亲手绘制,展现了一段时间内广州市企事业单位在网上商城采购商品的分布及随时间的变化。

Python可视化工具如何实现动态图表

接下来,将手把手教你如何绘制这个动态图,您可在公众号后台回复「kepler」获取数据集进行测试。

数据准备

第一步,打开并预览一下数据集,共766条采购记录,包含采购时间、采购单位和采购金额3个字段。

1df=pd.read_excel('cc.xls',index=False)2df.head()

Python可视化工具如何实现动态图表

第二步,根据采购单位字段获取经纬度,批量获取经纬度的方法很多,详情可参考「用Python评测三种批量查询经纬度的方法,你pick哪一种?」。

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()

Python可视化工具如何实现动态图表

第三步,对经纬度字段分列并存储为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)

简单三步数据准备完毕,数据预览如下:

Python可视化工具如何实现动态图表

数据可视化

将以上数据可视化到地图中的方法也有很多,比如Ecahrts、高德地图可视化平台、地图无忧等,本次主要介绍kepler.gl。

kepler.gl是由Uber开发的进行空间数据可视化的开源工具,是Uber内部进行空间数据可视化的默认工具,通过其面向Python开放的接口包keplergl,我们可以在 jupyter notebook 中通过书写Python代码的方式传入多种格式的数据,在其嵌入notebook的交互窗口中使用其内建的多种丰富的空间数据可视化功能。可以让你不需要任何编程基础,即可实现数据地图的可视化。Kepler.gl 支持的数据格式:CSV、GeoJson 和Json。

一、Jupyter中可视化

1.本地安装

pipinstallkeplergl

注:Windows用户建议conda安装,否则很可能报错。

2.加载地图和数据

Python可视化工具如何实现动态图表

二、在线网站中可视化(推荐)

当然,你也可以直接在kepler官网中上传数据操作,但官网速度较慢,建议用如下网站操作:

http://map.guihuayun.com/ #规划云网站搭的一个镜像

打开网站后,首先将cc.csv数据集添加进来。

Python可视化工具如何实现动态图表

添加好数据后,可以根据自己的喜好进行图标颜色、大小、地图样式等参数设置。

1.图标设置

Python可视化工具如何实现动态图表

2.地图样式更改

Python可视化工具如何实现动态图表

3.添加城市轮廓

城市轮廓数据可以在DATAV.GeoAtlas网站进行获取。

Python可视化工具如何实现动态图表

4.上传轮廓数据

Python可视化工具如何实现动态图表

5.添加时间轴

Python可视化工具如何实现动态图表

OK,大功告成!

总结

当然,我们还可以利用同样的数据集制作成热力图、3D地图等。关键是,如此便捷实用又美观的地图可视化工具竟然免费!感觉它比目前市面上很多付费工具还要给力。

Python可视化工具如何实现动态图表

Python可视化工具如何实现动态图表 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python和shell变量互相传递的几种方法
Nov 20 Python
python调用新浪微博API项目实践
Jul 28 Python
Python字符串和字典相关操作的实例详解
Sep 23 Python
浅谈Python大神都是这样处理XML文件的
May 31 Python
将python文件打包exe独立运行程序方法详解
Feb 12 Python
Python判断三段线能否构成三角形的代码
Apr 12 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
python操作redis数据库的三种方法
Sep 10 Python
Scrapy爬虫文件批量运行的实现
Sep 30 Python
Python如何使用vars返回对象的属性列表
Oct 17 Python
pandas apply使用多列计算生成新的列实现示例
Feb 24 Python
Appium中scroll和drag_and_drop根据元素位置滑动
Feb 15 Python
python 匿名函数与三元运算学习笔记
Oct 23 #Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
Oct 23 #Python
Python+OpenCV图像处理——实现直线检测
Oct 23 #Python
使用Python Tkinter实现剪刀石头布小游戏功能
Oct 23 #Python
Python 列表推导式需要注意的地方
Oct 23 #Python
python中的split、rsplit、splitlines用法说明
Oct 23 #Python
Python学习工具jupyter notebook安装及用法解析
Oct 23 #Python
You might like
谏山创故乡大分县日田市水坝将设立《进击的巨人》立艾伦、三笠以及阿尔敏的铜像!
2020/03/06 日漫
简单采集了yahoo的一些数据
2007/02/14 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
PHP简单实现冒泡排序的方法
2016/12/26 PHP
[原创]js与自动伸缩图片 自动缩小图片的多浏览器兼容的方法总结
2007/03/12 Javascript
js word表格动态添加代码
2010/06/07 Javascript
javascript实现焦点滚动图效果 具体方法
2013/06/24 Javascript
javascript实现页面内关键词高亮显示代码
2014/04/03 Javascript
javascript实现控制浏览器全屏
2015/03/30 Javascript
jQuery+CSS3折叠卡片式下拉列表框实现效果
2015/11/02 Javascript
移动端脚本框架Hammer.js
2016/12/15 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
小程序getLocation需要在app.json中声明permission字段
2019/04/04 Javascript
基于Web Audio API实现音频可视化效果
2020/06/12 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
python嵌套函数使用外部函数变量的方法(Python2和Python3)
2016/01/31 Python
Python自定义类的数组排序实现代码
2016/08/28 Python
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
详解Python核心对象类型字符串
2018/02/11 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
2018/04/26 Python
pandas表连接 索引上的合并方法
2018/06/08 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
2015/11/18 面试题
2015年元旦活动总结
2014/05/09 职场文书
艺术设计专业求职自荐信
2014/05/19 职场文书
暑期教师培训方案
2014/06/07 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
免职通知
2015/04/23 职场文书
react中的DOM操作实现
2021/06/30 Javascript
用php如何解决大文件分片上传问题
2021/07/07 PHP
Springboot中如何自动转JSON输出
2022/06/16 Java/Android