当前位置: 首页 > news >正文

Python - 绘制人体生物节律

文章目录

    • 项目说明
      • 关于人体生物节律
      • 用到的技术
    • 代码实现
      • 获取每月有多少天
      • 计算每天到生日过了多少天
      • 计算节律
      • 绘图
    • 结果


项目说明

这里仿照 http://www.4qx.net/The_Human_Body_Clock.php 做一个人体生物节律的计算和展示

关于人体生物节律

  • 百度/维基百科 解释
    https://zh.wikipedia.org/wiki/生理节律
    https://baike.baidu.com/item/人体生物节律/9883446

基本生物节律
情绪(28天)
影响:情绪、灵敏度、创造力

体力(23天)
影响:力量、韧性、耐久力、协调性

智力(33天)
影响:分析思考、逻辑、学习能力、记忆力


次级生物节律
精神(53天)
直觉(38天)
意识(48天)
美感(43天)


用到的技术

  • 计算日期间隔
  • 图表展示,使用 pyecharts;
    https://echarts.apache.org/zh/index.html
    https://github.com/pyecharts/pyecharts
    https://github.com/pyecharts/pyecharts-gallery

代码实现

获取每月有多少天

import time  
import datetime
import os def get_days_4month(y, m):if m < 1 and m > 12:  # 保证用户输入月份是在1-12月份print('输入日期错误')return 0t = 0  # t 变量用于表示闰年和平年的标志位list_maxm = [1, 3, 5, 7, 8, 10, 12]  # 创建大月的列表list_litem = [4, 6, 9, 11]  # 创建小月的列表if y % 4 == 0 and y % 100 != 0 or y % 400 == 0:t = 1if m in list_maxm:d = 31  # 计算大月的天数elif m == 2 and t == 0:d = 28  # 计算平年中2月的天数elif m == 2 and t == 1:d = 29  # 计算闰年中2月的天数elif m in list_litem:d = 30  # 计算小月的天数return d

计算每天到生日过了多少天

format  = '%Y-%m-%d'# 2023-02-12
def get_gap(birthday, day):d1 = datetime.datetime.strptime(birthday , format)d2 = datetime.datetime.strptime(day , format)diff = d2 - d1# print(diff.days)return diff.days

计算节律


TL_DUR = 23
QX_DUR = 28
ZL_DUR = 33def get_rhythm(gap):tl_circle = int(gap / TL_DUR)tl_day = gap % TL_DURqx_circle = int(gap / QX_DUR)qx_day = gap % QX_DURzl_circle = int(gap / ZL_DUR)zl_day = gap % ZL_DUR# print(tl_circle, tl_day, qx_circle, qx_day, zl_circle, zl_day)return tl_circle, tl_day, qx_circle, qx_day, zl_circle, zl_day

绘图


from pyecharts.charts import Line
import pyecharts.options as opts
from pyecharts.faker import Faker
import webbrowserimport mathdef get_gap_rate(gap_day, dur):rate = math.sin(math.pi * 2 * float(gap_day)/dur)# return round(rate, 5)return ratedef get_month_rhythm(year, month):days = get_days_4month(year, month)print('-- days : ', days)  birthday = '1991-08-26' tl_arr = []qx_arr = []zl_arr = []day_arr = []for i in range(days):# day = '{%d}-{%02d}-{%02d}'.format(year, month, i+1) day = '%d-%02d-%02d'%(year, month, i+1) gap = get_gap(birthday, day)print('-- ', day, gap)tl_circle, tl_day, qx_circle, qx_day, zl_circle, zl_day = get_rhythm(gap)# tl_arr.append(tl_day) # qx_arr.append(qx_day) # zl_arr.append(zl_day) day_arr.append(str(i+1))tl_arr.append(get_gap_rate(tl_day, TL_DUR))qx_arr.append(get_gap_rate(qx_day, QX_DUR))zl_arr.append(get_gap_rate(zl_day, ZL_DUR))line4=(Line().add_xaxis(day_arr).add_yaxis('体力', tl_arr, is_smooth=True, is_symbol_show=False) .add_yaxis('情绪', qx_arr, is_smooth=True, is_symbol_show=False).add_yaxis('智力', zl_arr, is_smooth=True, is_symbol_show=False).set_global_opts(title_opts=opts.TitleOpts(title=f'人体生物节律 {year}{month}月\n生日:{birthday}')))file_path = 'rhythm.html'line4.render(file_path)webbrowser.open("file://" + os.path.realpath(file_path))year, month = 2023, 2
get_month_rhythm(year, month)

结果

请添加图片描述


是不是和该网站的效果比较接近呢?在这里插入图片描述


伊织 2023-02-20(一)

相关文章:

Python - 绘制人体生物节律

文章目录项目说明关于人体生物节律用到的技术代码实现获取每月有多少天计算每天到生日过了多少天计算节律绘图结果项目说明 这里仿照 http://www.4qx.net/The_Human_Body_Clock.php 做一个人体生物节律的计算和展示 关于人体生物节律 百度/维基百科 解释 https://zh.wikiped…...

【NVMEM子系统】二、NVMEM驱动框架

个人主页&#xff1a;董哥聊技术我是董哥&#xff0c;嵌入式领域新星创作者创作理念&#xff1a;专注分享高质量嵌入式文章&#xff0c;让大家读有所得&#xff01;文章目录1、前言2、驱动框架3、源码目录结构4、用户空间下的目录结构1、前言 NVMEM SUBSYSTEM&#xff0c;该子系…...

小波神经网络(WNN)的实现(Python,附源码及数据集)

文章目录一、理论基础1、小波神经网络结构2、前向传播过程3、反向传播过程4、建模步骤二、小波神经网络的实现1、训练过程&#xff08;WNN.py&#xff09;2、测试过程&#xff08;test.py&#xff09;3、测试结果4、参考源码及实验数据集一、理论基础 小波神经网络&#xff08…...

商标干货!所有企业都值得收藏!

商标&#xff0c;是用于识别和区分不同商品或服务来源的标志&#xff0c;代表了企业的产品质量和服务保证&#xff0c;可以说&#xff0c;商标承载了一个企业的信誉&#xff0c;是企业参与市场竞争的重要工具&#xff0c;对于企业及其产品的重要性不言而喻。 根据《商标法》四十…...

4次迭代,让我的 Client 优化 100倍!泄漏一个 人人可用的极品方案!

4次迭代&#xff0c;让我的HttpClient提速100倍 在大家的生产项目中&#xff0c;经常需要通过Client组件&#xff08;HttpClient/OkHttp/JDK Connection)调用第三方接口。 尼恩的一个生产项目也不例外。 在一个高并发的中台生产项目中。有一个比较特殊的请求&#xff0c;一次…...

并查集(高级数据结构)-蓝桥杯

一、并查集并查集(Disioint Set)&#xff1a;一种非常精巧而实用的数据结构用于处理不相交集合的合并问题。用于处理不相交集合的合并问题。经典应用&#xff1a;连通子图。最小生成树Kruskal算法。最近公共祖先。二、应用场景有n个人&#xff0c;他们属于不同的帮派。 已知这些…...

你是真的“C”——C语言详解求两个正数最小公倍数的3种境界

C语言详解求两个正数最小公倍数的3种境界~&#x1f60e;前言&#x1f64c;必备小知识~&#x1f618;求最小公倍数境界1~ &#x1f60a;求最小公倍数境界2~ &#x1f60a;求最小公倍数境界3~ &#x1f60a;总结撒花&#x1f49e;博客昵称&#xff1a;博客小梦&#x1f60a; 最喜…...

【java】Spring Cloud --Feign Client超时时间配置以及单独给某接口设置超时时间方法

文章目录feign配置&#xff08;最常用&#xff09;ribbon配置hystrix配置单独给某接口设置超时时间FeignClient面对服务级有三种超时时间配置feign配置&#xff08;最常用&#xff09; feign:sentinel:enabled: trueclient:config:default://全部服务配置connectTimeout: 5000…...

spark代码

RDD Tom,DataBase,80 Tom,Algorithm,50 Tom,DataStructure,60 Jim,DataBase,90 Jim,Algorithm,60 Jim,DataStructure,80 该系总共有多少学生&#xff1b; val lines sc.textFile("file:///usr/local/spark/sparksqldata/Data01.txt") val par lines.map(ro…...

利用OpenCV的函数equalizeHist()对图像作直方图均衡化处理

如果一幅图像的灰度值集中在某个比较窄的区域&#xff0c;则图像的对比度会显得比较小&#xff0c;不便于对图像的分析和处理。 图像的直方图均衡化可以实现将原图像的灰度值范围扩大&#xff0c;这样图像的对比度就得到了提高&#xff0c;从而方便对图像进行后续的分析和处理…...

星河智联Android开发

背景&#xff1a;朋友内推&#xff0c;过了一周约面。本人 2019年毕业 20230208一面 1.自我介绍 2.为啥换工作 3.项目经历&#xff08;中控面板、智能音箱、语音问的比较细&#xff09; 4.问题 Handler机制原理&#xff1f;了解同步和异步消息吗&#xff1f;View事件分发…...

【C++】关联式容器——map和set的使用

文章目录一、关联式容器二、键值对三、树形结构的关联式容器1.set2.multiset3.map4.multimap四、题目练习一、关联式容器 序列式容器&#x1f4d5;:已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque、forward_list(C11)等&#xff0c;这些容器统称为…...

Promise的实现原理

作用&#xff1a;异步问题同步化解决方案&#xff0c;解决回调地狱、链式操作原理&#xff1a; 状态&#xff1a;pending、fufilled reject构造函数传入一个函数&#xff0c;resolve进入then&#xff0c;reject进入catch静态方法&#xff1a;resolve reject all any react ne…...

【MFC】数据库操作——ODBC(20)

ODBC:开放式数据库连接&#xff0c;是为解决异构数据库&#xff08;不同数据库采用的数据存储方法不同&#xff09;共享而产生的。ODBC API相对来说非常复杂&#xff0c;这里介绍MFC的ODBC类。 添加ODBC用户DSN 首先&#xff0c;在计算机中添加用户DSN&#xff1a;(WIN10下&a…...

旺店通与金蝶云星空对接集成采购入库单接口

旺店通旗舰奇门与金蝶云星空对接集成采购入库单查询连通销售退货新增V1(12-采购入库单集成方案-P)数据源系统:旺店通旗舰奇门旺店通是北京掌上先机网络科技有限公司旗下品牌&#xff0c;国内的零售云服务提供商&#xff0c;基于云计算SaaS服务模式&#xff0c;以体系化解决方案…...

Linux基础-学会使用命令帮助

概述使用 whatis使用 man查看命令程序路径 which总结参考资料概述Linux 命令及其参数繁多&#xff0c;大多数人都是无法记住全部功能和具体参数意思的。在 linux 终端&#xff0c;面对命令不知道怎么用&#xff0c;或不记得命令的拼写及参数时&#xff0c;我们需要求助于系统的…...

MyBatis 之四(动态SQL之 if、trim、where、set、foreach 标签)

文章目录动态 SQL1. if 标签2. trim 标签3. where 标签4. set 标签5. foreach 标签回顾一下&#xff0c;在上一篇 MyBatis 之三&#xff08;查询操作 占位符#{} 与 ${}、like查询、resultMap、association、collection&#xff09;中&#xff0c;学习了针对查询操作的相关知识点…...

PAT (Advanced Level) Practice 1006 Sign In and Sign Out

1006 Sign In and Sign Out题目翻译代码分数 25作者 CHEN, Yue单位 浙江大学At the beginning of every day, the first person who signs in the computer room will unlock the door, and the last one who signs out will lock the door. Given the records of signing in’…...

Android入门第64天-MVVM下瀑布流界面的完美实现-使用RecyclerView

前言 网上充满着不完善的基于RecyclerView的瀑布流实现&#xff0c;要么根本是错的、要么就是只知其一不知其二、要么就是一充诉了一堆无用代码、要么用的是古老的MVC设计模式。 一个真正的、用户体验类似于淘宝、抖音的瀑布流怎么实现目前基本为无解。因为本人正好自己空闲时也…...

Windows PowerShell中成功进入conda虚拟环境

本人操作系统是Windows10&#xff08;输入命令cmd或在运运行中输入winver查看&#xff09;在cmd命令行中大家都很熟悉&#xff0c;很方便进入到指定创建了的虚拟环境中&#xff0c;那么在PowerShell中怎么进入呢&#xff1f;比如在VSCode中的TERMINAL使用的是PowerShell&#x…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

linux之kylin系统nginx的安装

一、nginx的作用 1.可做高性能的web服务器 直接处理静态资源&#xff08;HTML/CSS/图片等&#xff09;&#xff0c;响应速度远超传统服务器类似apache支持高并发连接 2.反向代理服务器 隐藏后端服务器IP地址&#xff0c;提高安全性 3.负载均衡服务器 支持多种策略分发流量…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

Python 包管理器 uv 介绍

Python 包管理器 uv 全面介绍 uv 是由 Astral&#xff08;热门工具 Ruff 的开发者&#xff09;推出的下一代高性能 Python 包管理器和构建工具&#xff0c;用 Rust 编写。它旨在解决传统工具&#xff08;如 pip、virtualenv、pip-tools&#xff09;的性能瓶颈&#xff0c;同时…...