首页 > 编程语言 >Python分析睡眠数据

Python分析睡眠数据

时间:2023-02-09 23:23:41浏览次数:38  
标签:分析 睡眠 00 plt Python 入睡 item pd counts

在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()

 

标签:分析,睡眠,00,plt,Python,入睡,item,pd,counts
From: https://www.cnblogs.com/Mozhiqin/p/17107455.html

相关文章

  • Python 异步: 使用和查询任务(8)
    任务是异步程序的货币。在本节中,我们将仔细研究如何在我们的程序中与它们交互。1.任务生命周期异步任务具有生命周期。首先,任务是从协程创建的。然后安排在事件循环中独......
  • 关于 NodeJs 处理超长字符串问题的分析
    问题:对于超大的stringV8不能支持问题背景在Nodejs计算服务中,对端上上报的内存信息二进制数据进行预处理+缓存时,遇到了一个奇怪的报错:RangeError:Invalidstringlen......
  • python pass语句
    pass语句是一个空语句,为了保持程序的完整性。不做任何事情,一般用作占位if__name__=='__main__':foriinrange(10):ifi==5:pass......
  • python学习——【第五弹】
    前言上一篇文章​​python学习——【第四弹】​​不可变序列字符串和可变序列列表;今天这篇文章接着介绍不可变序列元组。元组元组是python内置的数据结构之一,有序,可多......
  • Python 安装使用cx_Oracle操作Oracle数据库
    cx_Oracle是一个能够访问Oracle数据库的Python扩展模块。它符合Python数据库API2.0规范,并增加了相当多的内容和几个排除项。Python连接使用Oracle数据需要使用c......
  • python实现百度贴吧页面爬取
    importrequestsclassTiebaSpider:"""百度贴吧爬虫类"""def__init__(self,tieba_name)->None:self.tieba_name=tieba_nameself.ur......
  • DNA甲基化芯片分析01: 使用methylumi和limma分析27K DNA甲基化芯片数据
    前言27K的数据是很老的芯片数据,但是客户有需求就要找方法分析,主流的DNA甲基化芯片R包minfi和champ都只支持450K和850K的芯片。所以在bioconductor中搜索到了methylumi这......
  • 【LeetCode字符串#02】替换空格,reserve和resize的区别分析
    替换空格力扣题目链接(opensnewwindow)请实现一个函数,把字符串s中的每个空格替换成"%20"。示例1:输入:s="Wearehappy."输出:"We%20are%20happy."思路一个错误......
  • [oeasy]python0078_设置索引颜色_index_color_ansi_控制终端颜色
    更多颜色回忆上次内容上次了解了高亮颜色91-97是高亮前景色101-107是高亮背景色颜色种类在原来基础上增加了一些但也非常有限还想要更精细的颜色有可能吗??......
  • Python 5.垃圾回收机制与运算符
    一、垃圾回收机制1.定义垃圾回收机制(简称GC)是Python解释器自带一种机,专门用来回收不可用的变量值所占用的内存空间。 2.为什么要有垃圾回收机制程序运行过程......