数据格式

手机信令数据,可依据sid判断用户,lon和lat对应位置的经纬度信息,还有时间和地区街道等信息

数据预处理

首先读取数据,按列选取需要用到的数据,并清洗数据。

data = pd.read_csv('./mobile_0.csv',encoding='GBK')
data = data[['sid','ts', 'lon', 'lat', 'region', 'street', 'address', 'area', 'building','category_tags_l1_name', 'category_tags_l2_name', 'category_tags_l3_name', 'poi_name', 'date']]
data = data[~data['region'].isin(["\\N"])] #去除地区缺少的行
data = data[~data['street'].isin(["\\N"])] #去除街道缺少的行
data.reset_index(drop=True, inplace=True)
data.to_csv("all_data_process.csv",index=None,encoding='GBK')

数据分析与处理

依据时间信息,进行简单的分类处理,将10-18时的归为工作地,0-6时的归为居住地。
此处将ts对应的具体时间数据格式转为datatime格式,pandas提供的有内置函数进行转换。

data = pd.read_csv('./all_data_process.csv', encoding='GBK')
data['address_name'] = data['region'] + data['street'] + data['address']
data['ts'] = pd.to_datetime(data['ts'],format='%Y/%m/%d %H:%M')data['ts'] = data['ts'].dt.hour
data_work = data[(data['ts']>10) & (data['ts']<18)]
data_work.reset_index(drop=True, inplace=True)
data_home = data[(data['ts']>0) & (data['ts']<6)]
data_home.reset_index(drop=True, inplace=True)

分类为home和work数据后,将数据的索引重置,便于后面使用,后面进行可视化操作时,也是分别对home和work处理。

work_place_lon = data_work_drop.loc[:,['lon']].values.squeeze()
work_place_lat = data_work_drop.loc[:,['lat']].values.squeeze()
work_place_name = data_work_drop.loc[:,['address_name']].values.squeeze()
json_data = {}
count = []
for i in range(len(work_place_lon)):json_data[work_place_name[i]] = [work_place_lon[i], work_place_lat[i]]count.append(100)
json_str = json.dumps(json_data, ensure_ascii=False, indent=4)
with open('work_data.json', 'w', encoding='utf-8') as json_file:json_file.write(json_str)
#toolbox_opts为图像保存设置,见后面图像右上方
toolbox_opts=opts.global_options.ToolBoxFeatureOpts(save_as_image = {"show": True, "title": "save as image", "type": "png"})

提取出经纬度信息,和前面将地区与街道信息合成的address_name,作为画图的数据存入json文件。

work_point = (Geo().add_schema(maptype="上海").add_coordinate_json(json_file='work_data.json')# 点添加属性.add("", data_pair=[list(z) for z in zip(work_place_name,count)], symbol_size=30, large_threshold=2000,symbol="pin",color="#2E2E2E").set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=2000),toolbox_opts=opts.ToolboxOpts(feature=toolbox_opts),title_opts=opts.TitleOpts(title="工作地"))
)
work_point.render('工作地分布.html')


此处点选择的时"pin"方式,可选择其他形式。

3d地图加柱状图

依据日期判断是否周末

weekend = ['20200801','20200802','20200808','20200809','20200815','20200816','20200822', '20200823', '20200829', '20200830']
weekend_home_places = data[data['date'].isin(weekend)]
workday_home_places = data[~data['date'].isin(weekend)]

下面统计街道信息,并在3d地图上用柱状图显示数量,参考官方给的实例写的,画Map3D再叠加Bar3D图。
官方文档链接

def td_street(data, title):workday_home_places_clean = data.drop_duplicates(subset=['address_name'], keep='first')workday_home_places_clean.reset_index(drop=True, inplace=True)work_count = data["address_name"].value_counts()data_pair = []for i in range(len(work_count)):data_pair.append((work_count.index[i], [workday_home_places_clean.loc[i, ['lon']].values[0],workday_home_places_clean.loc[i, ['lat']].values[0],int(work_count[i])]))c = (Map3D().add_schema(maptype="上海",itemstyle_opts=opts.ItemStyleOpts(color="rgb(5,101,123)",opacity=1,border_width=0.8,border_color="rgb(62,215,213)",),map3d_label=opts.Map3DLabelOpts(is_show=False,formatter=JsCode("function(data){return data.name + " " + data.value[2];}"),),emphasis_label_opts=opts.LabelOpts(is_show=False,color="#fff",font_size=10,background_color="rgba(0,23,11,0)",),light_opts=opts.Map3DLightOpts(main_color="#fff",main_intensity=1.2,main_shadow_quality="high",is_main_shadow=False,main_beta=10,ambient_intensity=0.3,),).add(series_name="bar3D",data_pair=data_pair,type_=ChartType.BAR3D,bar_size=1,shading="lambert",label_opts=opts.LabelOpts(is_show=False,formatter=JsCode("function(data){return data.name + ' ' + data.value[2];}"),),).set_global_opts(title_opts=opts.TitleOpts(title=title)))c.render("{0}.html".format(title))

Pandas+Pyecharts 数据分析与可视化 3D地图+柱状图相关推荐

  1. 可视化例子(3)——geo3D-bar3D(3D地图柱状图)

    一.效果图 二.数据格式 数据以"[[经度,纬度,柱子高度],[经度,纬度,柱子高度],[经度,纬度,柱子高度]...]"这样的形式存储在Json文件中,通过Filter函数存储到 ...

  2. Python+pandas+matplotlib数据分析与可视化案例(附源码)

    问题描述:运行下面的程序,在当前文件夹中生成饭店营业额模拟数据文件data.csv 然后完成下面的任务: 1)使用pandas读取文件data.csv中的数据,创建DataFrame对象,并删除其中所 ...

  3. python数据可视化pandas_python 抓取数据,pandas进行数据分析并可视化展示

    js中bind,call,apply方法的应用 最近用js的类写东西,发现一个无比蛋疼的事,那就是封装的类方法中的this指针经常会改变指向,失去上下文,导致程序错误或崩溃. 比如: function ...

  4. 【Pyecharts | Map3D】带光影效果的3D地图 | 深圳地区二手房房价地图~

    效果 先看看最终实现的效果: 通过Pyecharts做的一个3D地图,用户展现深圳各个小区的平均房价数据,数据是来自于和鲸社区. 分步讲解 模块引入 import pandas as pd from ...

  5. [转载] Python 天气 简单 数据分析及可视化

    参考链接: 使用Python Pandas进行数据分析和可视化 Python 天气情况数据分析及可视化 环境配置 Pycharm开发环境 python 版本 python3.7 Anconda 集成开 ...

  6. 知乎爬虫与数据分析(二)pandas+pyecharts数据可视化分析篇(上)

    注:代码完整版可移步Github--https://github.com/florakl/zhihu_spider. 知乎爬虫与数据分析(一)数据爬取篇 知乎爬虫与数据分析(三)pandas+pyec ...

  7. pandas matplotlib 用于数据分析和可视化

    上一个任务通过requests.BeautifulSoup4两个功能强大.用法简洁的函数库已经获取到了楼盘名.地址和价格这些新房信息,并且保存为csv格式文件,csv文件可以用excel打开并进行编辑 ...

  8. Python可视化——3D绘图解决方案pyecharts、matplotlib、openpyxl

    Python可视化--3D绘图解决方案pyecharts.matplotlib.openpyxl 1. pyecharts 2. matplotlib 3. openpyxl 这篇博客将介绍pytho ...

  9. Pandas+Pyecharts:2021中国大学综合排名分析+可视化,来围观看看你的大学上榜没

    大家好,我是辣条,又是爆肝的一天.祝大家新的一周开开心心顺顺利利! 项目解析 数据集准备 今天做的是可描述性分析,第一个先准备咱们的数据集,那么像这个数据集的话,我也是采集了我们2021年中国大学综合 ...

最新文章

  1. 为什么我的电脑上安装不上python-python安装不上
  2. 独家首发 | 900页阿里文娱技术实战,8大技术栈解析技术全景
  3. QT-QPainter绘制曲线等基本图形
  4. 回顾 | 进击吧! Blazor !第四期 组件开发
  5. 做到这4点,才是真正的持续交付| 研发效能提升36计
  6. CDH 和ambari之间的比较
  7. laravel代码提示:laravel-ide-helper
  8. 华为前端工程师分享:查明网站访问故障原因,教你4招快速应对
  9. CCIE学习(31)—— RIP知识回顾
  10. 通达信服务器文件是那个文件夹,通达信的公式在哪个文件夹?
  11. 苹果6怎样分屏_皮皮喵最新版下载安卓版更新 0.2.6
  12. Java对象的GC内存分配和回收策略
  13. 组合数学 8种盒子放球问题
  14. 如何删除计算机中常用列表,清除右键多余菜单,鼠标右键菜单清理的方法(一) -电脑资料...
  15. 两台win10电脑网线直连,使用Synergy实现鼠标键盘共享设置
  16. 部分安卓机型无法打开公众号/http链接,部分安卓机型无法打开公众号/http链接白屏
  17. 又是一年冬至,最喜欢吃冬至茧了
  18. laravel短信包 easy-sms
  19. Framer 指南:从设计到编程、组件及其它
  20. 一个大龄女程序员的悲哀....

热门文章

  1. 设计抗住千万级流量的架构思路(转)
  2. 2019年,ALEXA将会走向何方?
  3. 匿名管道和pipe函数
  4. ListBox和ComboBox绑定数据简单例子
  5. Solr 部分 局部字段修改 更新 删除
  6. androidannotations gradle Android Studio
  7. HDFS dfsclient写文件过程 源码分析
  8. java的引用指的是什么_请问java里的引用是指什么啊?
  9. curd日志记录php,ThinkPHP学习之CURD操作(一)
  10. 信息学奥赛一本通 1182:合影效果 | OpenJudge NOI 1.10 07:合影效果