0%

Summary of 2020

(下半年能出学校后就一直在报复性消费…)

↓点击图片进入动态地图(加载有点慢)↓

逃离闵大荒

涉及工作

原始数据收集

  • 平常有在Hotmail日历记录行程的习惯,所以这是数据的主要来源
  • 日历空缺的数据就从手机相册/微信聊天记录/支付宝账单找线索

数据处理

  • 确定数据格式:日期/类型/主题/地点/参与者/备注,使用panda.DataFrame存储信息
  • 转换日历信息:使用icalendar模块读取信息,使用component.decoded('xxx')函数提取字段信息
  • 数据清洗:移除课程表/组会等正经日程或无关日程,统一地点字段,统一人员字段格式
  • 数据分析:统计日程年度频次/地点频次/人员频次

地理位置映射

  • 按照道理是应该申请地理相关API,根据地点位置自动生成经纬度信息的
  • 但是实在是懒得申请(可能还要付费),就自己用地图拾取器手动打了一个索引表去查

搭建可视化地图

  • 使用folium模块,在Jupyter上coding,最终生成所需的html文件
  • 瓦片地图的选取:叠加高德提供的瓦片地图层
  • 中文字符的转换:需要转换为HTML字符显示
  • Marker类型:普通/聚类/热力图,标记上的图标(FontAwesome)

页面部署

  • 这时候才想起来自己还有一个Github Page
  • 结果太久没更新模块过期了还得重头建立hexo环境
  • 需要在hexo的配置文件内设置地图页面不进行渲染,直接显示页面
  • 由于微信浏览器加载不到部分的文件(css/js/fonts/images),导致界面显示不全,需要手动全部下载到本地并映射

数据分析

涉及到个人隐私就只显示了日期信息,分析下来的结果

1
2
3
year_freq: {2020: 58, 2019: 28, 2018: 27}
loc_freq: {'loc_a': 2, 'loc_b': 2, 'loc_c': 2, ...}
people_freq: {'aaa': 27, 'bbb': 27, 'ccc': 23, ...}

果然是干啥啥不行,吃饭第一名…

明年继续努力hhh

参考网址

Python地图可视化之Folium
folium官方文档
icalendar官方文档
坐标拾取器 - 腾讯地图
国内主要地图瓦片坐标系定义及计算原理
FontAwesome v4.7.0