在19年11月的时候买了一个运动手环,然后时不时会用它来记录睡眠数据;积累到现在已经有40个月了。现在想要调整作息,分析一下这些数据,来制定合理的作息计划。

图1 月平均入睡时间

从图1可以看出,我最经常的入睡时间是(02:00:00~02:10:00)之间;

现在我想要早睡,逐步调整,第一个目标值就是(00:50:00~01:00:00)之间,也就意味着我要在(00:20:00~00:30:00)停止刷手机【躺下到入睡需要30分钟】

 图2 月平均入睡时间
从图2可以看出,我经常在(08:00:00~08:10:00)以及(08:40:00~08:50:00)之间醒来。
为了保证睡眠充足,选(08:40:00~08:50:00)作为起床闹钟时间。

图3 各月睡眠时间条形图

#coding:utf8

import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.use("TkAgg")
import time
import datetime """
目标:统计分析出月入睡时间的数据
大纲: """ """
读取excel
------------------------------
月份 入睡时间 起床时间
2019年11月 1:44:00 9:11:00
2019年12月 1:45:00 9:12:00
------------------------------
"""
df = pd.read_excel('./入睡时间月级.xls', sheet_name=0) # 数据准备 按列获取数据作为x坐标轴
x = df['月份'].to_numpy()
y1 = np.array([])
for item in df['入睡时间'].to_numpy():
y1 = np.append(y1,item.hour+(item.minute)/100) y2 = np.array([])
for item in df['起床时间'].to_numpy():
y2 = np.append(y2,item.hour+(item.minute)/100) y3 = np.array([])
for item in (pd.to_timedelta(df['起床时间'].to_numpy().astype(str)) - pd.to_timedelta(df['入睡时间'].to_numpy().astype(str))):
y3 = np.append(y3,(item.seconds)/3600) # 画图1 月平均入睡时间频数图
bins = [0.1,0.2,0.4,0.5,1.0,1.1,1.2,1.3,1.4,1.5,2.0,2.1,2.2,2.3,2.4,2.5,3.0,4.0,5.0,6.0]
segments = pd.cut(y2,bins,right=False)
counts = pd.value_counts(segments,sort=False)
b = plt.bar(counts.index.astype(str),counts)
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.xticks(rotation=45)
plt.bar_label(b,counts)
plt.xlabel("月平均入睡时间")
plt.ylabel("次")
plt.title("入睡时间频数图")
plt.show() # 画2 月平均起床时间频数图
# bins = [7.4,7.5,8.0,8.1,8.2,8.3,8.4,8.5,9.0,9.1,9.2,9.3,9.4,9.5,10.0,10.1,10.2,10.3,11.0]
# segments = pd.cut(y2,bins,right=False)
# counts = pd.value_counts(segments,sort=False)
# b = plt.bar(counts.index.astype(str),counts)
# plt.rcParams['font.sans-serif'] = ['SimHei']
# plt.xticks(rotation=45)
# plt.bar_label(b,counts)
# plt.xlabel("月平均起床时间")
# plt.ylabel("次")
# plt.title("起床时间频数图")
# plt.show() # 画图3 直方图
# plt.rcParams['font.sans-serif'] = ['SimHei']
# plt.bar(x,y2)
# plt.bar(x,y1)
# plt.plot(x,y3,'r')
# plt.xticks(rotation=60)
# plt.show()

Python分析睡眠数据的更多相关文章

  1. Twitter数据挖掘:如何使用Python分析大数据

    我们可以创建变量来存放待拉取的微博数量(即count),以及待拉取的用户(即name).然后用这两个参数调用user_timeline()函数.下面是更新后的代码(注意,在代码的顶部应该保持认证和AP ...

  2. Twitter数据挖掘:如何使用Python分析大数据 (3)

    让我们来拉取Twitter账号@NyTimes的最近20条微博. 我们可以创建变量来存放待拉取的微博数量(即count),以及待拉取的用户(即name).然后用这两个参数调用user_timeline ...

  3. 用python探索和分析网络数据

    Edited by Markdown Refered from: John Ladd, Jessica Otis, Christopher N. Warren, and Scott Weingart, ...

  4. Python分析数据难吗?某科技大学教授说,很难但有方法就简单

    用python分析数据难吗?某科技大学的教授这样说,很难,但要讲方法,主要是因为并不是掌握了基础,就能用python来做数据分析的. 所谓python的基础,也就是刚入门的python学习者,学习的基 ...

  5. python 发送json数据操作实例分析 - python

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 本文实例讲述了python 发送json数据操作.分享给大家供大家参考,具体如下: # !/usr/bin/env py ...

  6. Python/Numpy大数据编程经验

    Python/Numpy大数据编程经验 1.边处理边保存数据,不要处理完了一次性保存.不然程序跑了几小时甚至几天后挂了,就啥也没有了.即使部分结果不能实用,也可以分析程序流程的问题或者数据的特点.   ...

  7. 为什么说Python 是大数据全栈式开发语言

    欢迎大家访问我的个人网站<刘江的博客和教程>:www.liujiangblog.com 主要分享Python 及Django教程以及相关的博客 交流QQ群:453131687 原文链接 h ...

  8. 用Python浅析股票数据

    用Python浅析股票数据 本文将使用Python来可视化股票数据,比如绘制K线图,并且探究各项指标的含义和关系,最后使用移动平均线方法初探投资策略. 数据导入 这里将股票数据存储在stockData ...

  9. 利用Python读取外部数据文件

      不论是数据分析,数据可视化,还是数据挖掘,一切的一切全都是以数据作为最基础的元素.利用Python进行数据分析,同样最重要的一步就是如何将数据导入到Python中,然后才可以实现后面的数据分析.数 ...

  10. 世界杯:用Python分析热门夺冠球队-(附源代码)

    2018年,火热的世界杯即将拉开序幕.在比赛开始之前,我们不妨用 Python 来对参赛队伍的实力情况进行分析,并大胆的预测下本届世界杯的夺冠热门球队. 通过数据分析,可以发现很多有趣的结果,比如: ...

随机推荐

  1. 抓包整理————ip 协议一[十二]

    前言 简单介绍一下ip协议. 正文 先来看下ip协议在网络层的哪一层: 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 ip 层就在网络层: 其实很好想象哈,就是因为每台机器起码有一个ip ...

  2. Java安全之CC2

    前言 由于在2015年底commons-collections反序列化利⽤链被提出时,Apache Commons Collections有以下两个分⽀版本: commons-collections: ...

  3. 2022-11-04 Acwing每日一题

    本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我会认真改正的.同时也希望 ...

  4. 修复 docker build 错误 "ERROR: No build stage in current context"

    若 docker build 时遇到了错误 "ERROR: No build stage in current context",则有可能是没有将 FROM 命令语句放置在第一行. ...

  5. 第二十五节:scrapy爬虫识别验证码(四)手绘验证码识别

    一.介绍 今天主要介绍的是微博客户端在登录时出现的四宫格手绘验证码,不多说直接看看验证码长成什么样.        二.思路 1.由于微博上的手绘验证码只有四个宫格,且每个宫格之间都有有向线段连接,所 ...

  6. 2A锂电池充电管理IC,具有恒压/恒流充电模式

    PW4052 是一颗适用于单节锂电池的.具有恒压/恒流充电模式的充电管理 IC.该芯片采用开关型的工作模 式, 能够为单节锂电池提供快速. 高效且简单的充电管理解决方案. PW4052 采用三段式充电 ...

  7. Pointers and Constants

    Pointers and Constants char * const q = "abc"; // q is const *q = 'c'; // OK q++; //ERROR ...

  8. 事件 jQuery类库、Bootstrap页面框架

    目录 jQuery查找标签 基本选择器 组合选择器 层级选择器 属性选择器 基本筛选器 表单筛选器 筛选器方法 链式的本质(jQuery一行代码走天下) 操作标签 class操作 位置操作 文本操作 ...

  9. 如何取消磁盘的BitLocker加密

    步骤1:打开开始[win]菜单,点击齿轮图标,打开[设置] 步骤2:在Windows设置视窗中点击[更新和安全] 步骤3:点击左侧[设备加密],点击视窗右侧[关闭] 步骤4:将提示是否需要关闭设备加密 ...

  10. C语言读写txt文件

    写入和读取txt文件 #include<stdio.h> #include<string.h> int main( int argc, char *argv[] ) { int ...