Python可视化工具如何实现动态图表
作者:松鼠爱吃饼干 发布时间:2023-05-22 19:21:27
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理
以下文章来源于菜J学Python ,作者J哥
前言
这次呢,我想讲讲地图可视化的内容,以前我也写过用Python的内置库绘制地图,但总感觉不够美观。如何才能在短时间内制作漂亮的可视化地图呢,我觉得Python+可视化工具是不错的选择。
以下动态可视化地图就是J哥亲手绘制,展现了一段时间内广州市企事业单位在网上商城采购商品的分布及随时间的变化。
接下来,将手把手教你如何绘制这个动态图,您可在公众号后台回复「kepler」获取数据集进行测试。
数据准备
第一步,打开并预览一下数据集,共766条采购记录,包含采购时间、采购单位和采购金额3个字段。
1df=pd.read_excel('cc.xls',index=False)2df.head()
第二步,根据采购单位字段获取经纬度,批量获取经纬度的方法很多,详情可参考「用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()
第三步,对经纬度字段分列并存储为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.本地安装
pipinstallkeplergl
注:Windows用户建议conda安装,否则很可能报错。
2.加载地图和数据
二、在线网站中可视化(推荐)
当然,你也可以直接在kepler官网中上传数据操作,但官网速度较慢,建议用如下网站操作:
http://map.guihuayun.com/ #规划云网站搭的一个镜像
打开网站后,首先将cc.csv数据集添加进来。
添加好数据后,可以根据自己的喜好进行图标颜色、大小、地图样式等参数设置。
1.图标设置
2.地图样式更改
3.添加城市轮廓
城市轮廓数据可以在DATAV.GeoAtlas网站进行获取。
4.上传轮廓数据
5.添加时间轴
OK,大功告成!
总结
当然,我们还可以利用同样的数据集制作成热力图、3D地图等。关键是,如此便捷实用又美观的地图可视化工具竟然免费!感觉它比目前市面上很多付费工具还要给力。
来源:https://www.cnblogs.com/hhh188764/p/13858263.html


猜你喜欢
- 本文实例讲述了Python使用迭代器捕获Generator返回值的方法。分享给大家供大家参考,具体如下:用for循环调用generator时
- 静态文件配置概述:静态文件交由Web服务器处理,Django本身不处理静态文件。简单的处理逻辑如下(以nginx为例):URI请求 --&g
- 数组:【重点1】implode(分隔,arr) 把数组值数据按指定字符连接起来例如:$arr=array('1','
- 随着WEB标准在国内的不断普及,结构表现行为分离、模块化、语义化、优雅退化等概念也成为考核一名前端人员对WEB标准理解的重要条目,其中,由于
- 自定义一个demo指令Vue自定义指令语法如下:Vue.directive(id, definition)传入的两个参数,id是指指令ID,
- 利用zipfile模块和pandas获取数据,代码比较简单,做个记录吧:# -*- coding: utf-8 -*-""
- 源码及注释:import pygamefrom sys import exitfrom random import randintimpor
- 在ASP中,如何创建DSN? 见下:<HTML><HEAD><META&n
- 用nodejs怎样来实现对微信公众平台的开发呢?别的就不多说了,先来简单介绍微信公众平台的基本原理。微信服务器就相当于一个转发服务器,终端(
- 1.学习目标递归函数是直接调用自己或通过一系列语句间接调用自己的函数。递归在程序设计有着举足轻重的作用,在很多情况下,借助递归可以优雅的解决
- 首先我的环境已配置好:GO的目录结构是:add.gopackage calc//函数名必须大写首字母,不然外部包找不到func Add(a
- 在这篇文章中,我将介绍如何识别导致性能出现问题的查询,如何找出它们的问题所在,以及快速修复这些问题和其他加快查询速度的方法。你一定知道,一个
- 这篇文章主要介绍了python实现简单日志记录库glog的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
- 当然,这些并非真正的定律,而只是一些有益的忠告,使你免陷于使用层时可能的困顿中。原来有九条定律的,我们精简掉一条,还有下面的八条:1. 如果
- python如何跳过异常继续执行下面有两种解决方法第一种是类似if…else…;另外一种是使用语
- 适配器设计模式是懒得改动某些代码,或者某些接口不方便改动的时候,使用一个特定的封装,一些特定的编写办法,使不同的接口可以使用同种调用方式使用
- 一、前言在近半年的 Python 命令行旅程中,我们依次学习了 argparse 、 docopt 、 click 和 fire 库的特点和
- 本文实例为大家分享了python实现图片转字符画的具体代码,供大家参考,具体内容如下源码(注释很详细):# -*- coding=utf-8
- 前言大家都知道golang的defer关键字,它可以在函数返回前执行一些操作,最常用的就是打开一个资源(例如一个文件、数据库连接等)时就用d
- 大纲本文主要介绍一下numpy中的几个常用函数,包括hstack()、vstack()、stack()、concatenate()。1、co