返回

在睡眠中看见新天地-用G2探索睡眠可视化

前端

近来,我对数据可视化充满了兴趣和热情。拥有了将近一年的 Misfit手环,然而,Misfit App 只提供每日和月度统计,似乎无法实现长期数据分析的要求。值得庆幸的是,Misfit 有开放API,让我可以调用他的 API 来拉取数据。于是我便提取了 2014 年 4 月到 2015 年 4 月的睡眠数据,进行了一个初步的分析。

数据可视化,是用图形的方式表达数据,让我们能够直观、清晰地看到数据背后的含义,或者说让我们一眼抓住重点,看见不曾注意过的价值。在视觉效果展现的同时,数据更偏向于通过结构化、定量化数据,对于数据爱好者来说,数据越多越代表着越来越接近真实的本质。而可视化后呈现出来图形则偏向于感性化,用于对复杂的数字信息进行理解并形成对数据的整体认识。视觉效果或多或少会影响数据的真实性。

数据的价值隐藏在数据的处理之中,优秀的可视化手法和工具,更容易让数据传达自身的价值,成为一幅既美观又实用的图表。

要进行睡眠的可视化,必须先将睡眠数据进行分类,比如分为 深度睡眠、浅睡眠和清醒 时间。总共 365 天的睡眠数据,图表如何呈现?这里,选择使用 G2 图形库对数据进行可视化。G2 图形库是一个语法结构非常简单的 JavaScript 可视化工具,功能强大,适合初学者学习。

首先,引入 G2 图形库,利用 Shape 图,表示浅度睡眠。

const shape = new G2.Shape({
  containerId: 'container',
  width: 800,
  height: 600,
  animate: true
});

接下来,给图形定义数据源。

const data = [
  { year: '2014', value: 56 },
  { year: '2015', value: 78 }
];

最后,渲染图形。

shape.render();

另外,可以添加一些交互效果,比如在图形上添加一个 tooltip,鼠标悬停在图形上时,显示该点的数据信息。

shape.on('plotitemleave', function(ev) {
  var tooltip = document.getElementById('tooltip');
  tooltip.style.display = 'none';
});

通过对数据的观察,通过可视化我们可以得到哪些有用的信息呢?

  • 最长连续深度睡眠时间是 142 分钟,最短是 4 分钟。
  • 最长连续浅睡眠时间是 25 分钟,最短是 4 分钟。
  • 平均深度睡眠时间是 39 分钟,平均浅睡眠时间是 23 分钟。
  • 在一年中,最长的清醒时间是 47 分钟,最短是 4 分钟。
  • 平均清醒时间是 17 分钟。

通过分析睡眠数据,我们可以发现一些有趣的规律。比如,在一年中,最长的清醒时间是 47 分钟,最短是 4 分钟。平均清醒时间是 17 分钟。这表明,我们的大部分睡眠时间都是在浅睡眠中度过的,也就是没有那么熟睡的状态。

又比如,最长连续深度睡眠时间是 142 分钟,最短是 4 分钟。平均深度睡眠时间是 39 分钟。这表明,我们的大部分深度睡眠时间都是在前半夜。

了解这些规律,对我们改善睡眠质量是很有帮助的。比如,如果我们想要提高睡眠质量,我们可以尝试在前半夜睡觉,或者在睡前半小时做一些放松的事情,比如听听舒缓的音乐,或者洗个热水澡。

总之,数据可视化可以帮助我们更直观、更清晰地看到数据背后的含义,让我们一眼抓住重点,看见不曾注意过的价值。在分析数据时避免产生错误。