编写程序录入每日情绪标签,持续时长,绘制一周情绪曲线,识别情绪低谷周期。

张开发
2026/6/15 18:40:14 15 分钟阅读

分享文章

编写程序录入每日情绪标签,持续时长,绘制一周情绪曲线,识别情绪低谷周期。
基于每日情绪标签与持续时长的情绪曲线绘制与低谷周期识别教学级健康管理原型内容不涉及心理诊断、不推荐产品、不做疗效承诺、无任何引流。一、实际应用场景描述在智能健康管理课程中情绪监测Mood Monitoring是心理健康管理的核心技能之一。本程序适用于- 个人情绪自我管理- 心理咨询辅助记录- 学校心理健康教育- 健康管理专业实验教学核心目标- 录入每日情绪标签与持续时长- 绘制一周情绪变化趋势- 识别情绪低谷周期- 输出非临床观察建议✅ 不替代心理医生✅ 不做精神科诊断✅ 仅作为健康意识与数据素养工具二、痛点引入真实可感知痛点 表现情绪模糊 “今天还行”无法量化记忆偏差 忘记前几天真实状态看不到趋势 只关注单日情绪低谷难发现 情绪下滑过程被忽略工具过重 专业量表门槛太高 需要一个轻量、本地、可视化的情绪记录工具三、核心逻辑讲解工程视角1️⃣ 数据模型设计DailyMood├── date 日期├── mood_label 情绪标签├── duration 持续时长小时└── intensity 情绪强度1–102️⃣ 情绪量化规则教学用情绪标签 基础分值愉悦 9平静 7中性 5低落 3焦虑 2沮丧 13️⃣ 情绪指数计算当日情绪指数 基础分值 × 强度系数 × 时长系数4️⃣ 低谷识别逻辑- 连续 ≥3 天 情绪指数低于阈值- 或单日情绪指数显著下降5️⃣ 可视化- 使用matplotlib- 折线图展示一周趋势- 标注低谷区间四、Python 模块化代码可直接运行 项目结构mood_tracker_tool/│├── main.py├── models.py├── analyzer.py├── visualizer.py├── storage.py└── README.md✅ models.py数据建模models.py每日情绪数据模型class DailyMood:def __init__(self, date, mood_label, duration, intensity):self.date dateself.mood_label mood_labelself.duration durationself.intensity intensity✅ analyzer.py分析与低谷识别analyzer.py情绪指数计算与低谷识别MOOD_SCORE {愉悦: 9,平静: 7,中性: 5,低落: 3,焦虑: 2,沮丧: 1}def calculate_mood_index(record):base MOOD_SCORE.get(record.mood_label, 5)duration_factor min(record.duration / 12, 1.5)intensity_factor record.intensity / 10return base * duration_factor * intensity_factordef detect_low_periods(records, threshold4.0, min_days3):low_days []result []for i, r in enumerate(records):index calculate_mood_index(r)if index threshold:low_days.append(i)else:if len(low_days) min_days:result.append((low_days[0], low_days[-1]))low_days []if len(low_days) min_days:result.append((low_days[0], low_days[-1]))return result✅ visualizer.py可视化visualizer.py绘制情绪曲线import matplotlib.pyplot as pltfrom analyzer import calculate_mood_indexdef plot_mood_curve(records, low_periods):dates [r.date for r in records]values [calculate_mood_index(r) for r in records]plt.figure(figsize(8, 4))plt.plot(dates, values, markero, label情绪指数)for start, end in low_periods:plt.axvspan(start, end, colorred, alpha0.2, label情绪低谷)plt.ylim(0, 10)plt.xlabel(日期)plt.ylabel(情绪指数)plt.title(一周情绪变化曲线)plt.legend()plt.tight_layout()plt.show()✅ storage.py本地存储storage.pyJSON 本地存储import jsonFILE_PATH mood_records.jsondef save_records(records):data [r.__dict__ for r in records]with open(FILE_PATH, w, encodingutf-8) as f:json.dump(data, f, ensure_asciiFalse, indent2)✅ main.py交互入口main.py情绪曲线与低谷识别工具from models import DailyMoodfrom analyzer import detect_low_periodsfrom visualizer import plot_mood_curvefrom storage import save_recordsdef main():print( 一周情绪记录工具 )records []for _ in range(7):date input(日期YYYY-MM-DD)mood input(情绪标签)duration float(input(持续时长小时))intensity int(input(情绪强度1-10))records.append(DailyMood(date, mood, duration, intensity))lows detect_low_periods(records)print(\n【情绪低谷周期】)for start, end in lows:print(f第 {start1} 天 至 第 {end1} 天)plot_mood_curve(records, lows)save_records(records)print(✅ 数据已保存)if __name__ __main__:main()五、README 与使用说明# 情绪曲线与低谷识别工具教学版## 项目说明用于记录每日情绪标签与持续时长绘制情绪曲线并识别低谷周期。## 依赖安装bashpip install matplotlib## 使用方式bashpython main.py## 适用范围- 心理健康教学- 健康管理课程- 个人情绪记录## 注意事项- 非心理诊断工具- 不替代专业帮助- 结果仅作教学与自我观察六、核心知识点卡片教学向分类 内容Python 类、列表、函数数据分析 情绪量化、趋势识别可视化 Matplotlib 折线图心理健康 情绪监测概念工程思想 模块化与解耦可扩展性 可接入数据库 / App七、总结工程师视角这是一个完全中立、去营销化、可教学的原型系统✅ 不制造情绪焦虑✅ 不伪装成诊疗工具✅ 不依赖复杂心理学理论它真正展示的是如何用 Python 把主观情绪转化为客观、可观察、可讨论的数据利用AI解决实际问题如果你觉得这个工具好用欢迎关注长安牧笛

更多文章