Jawbone Up 数据的按小时统计及可视化(R 语言实现)

本文介绍了如何利用R语言对Jawbone Up的运动数据进行按小时统计和可视化,包括数据获取、预处理、使用ggplot创建柱状图和热度图。通过Python获取JSON数据并转存为CSV,然后在R中进行数据处理,展示了bucketBar和bucketHeatmap函数的实现,用于不同时间粒度的统计分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Jawbone up 应用中的 LifeLine 提供了很棒的运动和睡眠的可视化展示,并且在统计部分提供了按日、按月、按周的柱状图。( API 详情,请参考 获取Jawbone UP中的个人数据-非官方API )。

作为一个数据控,决不能满足任何数据瑕疵,所以利用 Python 和 R 语言,对 Jawbone Up 的运动细节数据进行了按小时的统计,并用ggplot 制作了相关的图表。

数据获取

可以通过 user/%userXid%/band 获得Jawbone Up的运动细节数据,时间颗粒度为分钟。这个 API 有 start_time 和 end_time 两个参数,为 long 型时间,即从1970年以来的秒数。如果这两个参数都不填,服务器端会缺省返回当日的数据。为了获取更多的数据,可以只设置start_time, 这样就能够返回从开始时间至今的所有运动细节详情。

下面的代码采用 Python 实现,用于从服务器端获取 band 数据。

返回的JSON数据示例如下:


数据预处理

R 有 RJSONIO 等包可以用于 JSON 数据的处理,不过还是不如Python方便。

下面的代码,采用 Python 实现了将 Band 数据转换成平面CSV文件。

处理后的数据文件样本为:


利用 R 进行数据统计和可视化

下面的代码实现了数据的读取、预处理、并构建了两个相对通用的函数,按照不同时间颗粒度(小时、日、周、月、年)对某项指标进行求 sum、mean 等统计运算,并展现为柱状图(Bar)或热度图(Heatmap)

数据显示样本:

bucketBar 的实现和使用

bucketBar 实现了一个通用的按时间统计的柱状图函数,能够使用不同的时间颗粒度、采用不同的列作为数据源、用户自定义聚合计算方法,最后形成柱状图。

显示按不同的时间颗粒度进行计算和可视化展现。

bucketHeatmap 的实现和使用

bucketHeatmap 将以小时 Hour 为时间颗粒度,聚合所需展示的数据,并以热度图的形式展现出来。用户可以指定聚合所使用的计算方法。

显示按小时的可视化展现。为了避免单日运动量特别大的日期,影响可视化展现效果,在这里,对数据使用了 log2 进行处理。


代码地址

https://github.com/iascchen/VisHealth/

数据预处理 R/json2csv.py; 可视化展现 R/vischarts.R 。


祝各位玩的开心!


Author : iascchen(at)gmail(dot)com

Date : 2013-07-22

新浪微博 : @问天鼓

原文链接:http://www.wearable.pw/index.php/archives/272


This entry was posted in 无下限 and tagged bar, heatmap, jawbone, R, up. Edit
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值