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

python pyecharts 数据分析及可视化(2)

一、任务要求

任务二:感冒高发期分析
【任务说明】
感冒是一种常见的急性上呼吸道病毒性感染性疾病,多由鼻病
毒、副流感病毒、呼吸道合胞病毒、埃可病毒、柯萨奇病毒、冠状病
毒、腺病毒等引起。临床表现为鼻塞、喷嚏、流涕、发热、咳嗽、头
痛等,多呈自限性。
现有某一医疗机构 10 年的患者诊断数据,请你根据诊断结果进
行感冒高发期分析。
【任务要求】
读取所需数据集后,对数据进行必要的清洗,绘制出感冒高发期
热力图,分析感冒高发期在每一年中的什么时候,并出具分析报告。
绘图要求如下:
1. 使用 PyEcharts 库绘制热力图;
2. 热力图横轴为年份,纵轴为月份;
3.使用 Django 框架在前端页面中渲染展示热力图;

二、代码部分

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import HeatMapdata = pd.read_csv('生病数据.csv')
print(f"len(data):{len(data)}")
data = data.dropna(subset=['year', 'month', 'diagnosis'])
cold = ['感冒', '流感', '发烧', '头疼']
data['diagnosis'] = data['diagnosis'].apply(lambda x: x.strip())  # 去除前后空值
print(f"")
cold_data = data[data['diagnosis'].isin(cold)]
cold_data = cold_data.sort_values(by='DiagnosisTime')
cold_data.reset_index(drop=True, inplace=True)
print(f"len(cold_data):{len(cold_data)}")
print(f"cold_data:{cold_data}")cold_counts = cold_data.groupby(['year', 'month']).size().unstack(fill_value=0)
print(f"\ncold_counts:\n{cold_counts}")def create_heatmap(cold_counts):months = cold_counts.columns.tolist()  # [1, 2, ..., 12]years = cold_counts.index.tolist()  # [2020, 2021, ..., 2024]# 使用列表推导式构建 data 数据data = [[months.index(month), years.index(year), cold_counts.loc[year, month]]for month in months for year in years]data = [[x, y, int(val)] for x, y, val in data]# 创建基础热力图heatmap_basic = (HeatMap().add_xaxis(list(months)).add_yaxis(series_name="",yaxis_data=list(years),value=data,label_opts=opts.LabelOpts(is_show=True, position="inside"),).set_global_opts(title_opts=opts.TitleOpts(title="感冒高发期分析热力图"),visualmap_opts=opts.VisualMapOpts(min_=int(cold_counts.min().min()),  # 最小值max_=int(cold_counts.max().max()),  # 最大值is_piecewise=False  # 不使用分段颜色映射),))heatmap_basic.render("heatmap_basic.html")create_heatmap(cold_counts)

三、运行结果

http://www.lqws.cn/news/564409.html

相关文章:

  • 基于Pandas和FineBI的昆明职位数据分析与可视化实现(三)- 职位数据统计分析
  • MAC 地址在 TCP 网络中的全面解析:从基础概念到高级应用
  • 【Redis原理】Redis事务与线程模型
  • StarRocks 3.5 新特性解读:Snapshot 快照恢复、大导入性能全面升级、分区管理更智能
  • opensuse/debian grub启动界面太模糊?
  • Wpf布局之WrapPanel面板!
  • 3.1.1、CAN总线单个设备环回测试
  • Git常见使用
  • WPF学习笔记(11)数据模板DataTemplate与数据模板选择器DataTemplateSelector
  • Mybatis学习总结
  • 鸿蒙5:自定义构建函数
  • 力扣第84题-柱状图中最大的矩形
  • Leetcode 3600. Maximize Spanning Tree Stability with Upgrades
  • Docker安装的gitlab配置ssl证书
  • 协作机器人优化自动化工作流程,提升工作效率
  • vue3报错No known conditions for “./lib/locale/lang/zh-cn”
  • HTML响应式Web设计
  • 链表题解——环形链表 II【LeetCode】
  • RK3588集群服务器性能优化案例:电网巡检集群、云手机集群、工业质检集群
  • Qwen2.5-7B-Instruct模型推理速度与量化对比分析
  • 【数据集】中国2016-2022年 城市土地利用数据集 CULU
  • 4_Flink CEP
  • 现代 JavaScript (ES6+) 入门到实战(四):数组的革命 map/filter/reduce - 告别 for 循环
  • Vue3 根据路由配置实现动态菜单
  • git常见问题汇总-重复提交/删除已提交文件等问题
  • RabbitMQ 工作模式
  • 海量数据存储与分析:HBase、ClickHouse、Doris三款数据库对比
  • 用celery作为信息中间件
  • AlpineLinux安装部署MariaDB
  • 如何撰写有价值的项目复盘报告