恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

实验2 数据看板

  • 首页
  • 资讯中心
  • /
  • 实验2 数据看板

相关资讯

车端数据怎么保证不被篡改可被取证:安当CAS事件签名存证实践 2026/10/11 3:56:58
Python性能优化实战:从定位瓶颈到代码提速的完整指南 2026/10/11 3:56:58
密钥怎么防止被拿去干别的事:以安当KSP的密钥用途约束与防误用治理为例 2026/10/11 3:56:58

最新资讯

基于 YOLO11 的超市店铺偷窃行为智能识别系统 | 源码项目分享
Fiddler下载安装与HTTPS抓包全指南:本地代理链路闭环实战
字符编码与数据存储:从ASCII到UTF-8、Base64的底层逻辑
护眼台灯怎么选?逐项核验国标,避开营销噱头
智算网络Scale-up与Scale-out通信拓扑调优实战
AI日报制作全流程:从信息采集到筛选撰写的实操指南

今日推荐

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

实验2 数据看板

发布时间:2026/10/11 4:01:58
实验2 数据看板 任务1看板需求分析与版面设计本次选择学生成绩统计作为业务场景。看板目标直观展示各班学生成绩分布、平均分、及格与优秀占比等信息。划分4个模块1. 数据概览区核心指标卡片总记录数、平均分、及格率、优秀率​2. 维度统计区各班平均分柱状对比图​3. 趋势分析区不同学期平均分折线趋势图​4. 明细数据区原始成绩明细表格配色方案主色 #165DFF蓝色辅助色 #FF7D00橙色、#00B42A绿色背景为白色。版面布局第一行放置指标卡片第二行左右分布柱状图、折线图第三行左右分布明细表、环形占比图。任务2实验数据准备与预处理采用代码自动生成模拟学生成绩数据集包含字段学号、班级、科目、学期、分数。数据预处理操作1. 校验分数剔除0~100以外的异常分数​2. 新增派生字段“分数段”自动划分不及格(60)、良好(60~79)、优秀(80~100)​3. 整理维度分类维度班级、分数段、科目时间维度学期数值维度分数清洗后数据可直接用于可视化。任务3基础可视化图表搭建基于清洗完成的数据一共实现4类可视化1. 指标卡片st.metric展示总记录条数、整体平均分、及格率、优秀率​2. 柱状图X轴为班级Y轴为平均分用于对比计科1班、计科2班、软工1班成绩差异​3. 折线图X轴为学期Y轴为平均分展示成绩随学期变化趋势​4. 环形图饼图展示不及格、良好、优秀三个等级的人数占比结构。任务4静态数据看板整合实现使用Streamlit完成页面整合把标题、指标卡片、4张图表、明细数据表放在同一个页面。利用 st.columns() 做多列分栏排版对图表配色统一设置保持视觉风格一致。调整页面为宽屏布局合理分配组件间距页面层级清晰最终生成完整静态数据看板在浏览器中预览展示效果。代码import streamlit as stimport pandas as pdimport plotly.express as pximport numpy as np# ---------- 页面基础配置 ----------st.set_page_config(page_title学生成绩看板, layoutwide)st.markdown(h1 stylecolor:#165DFF;学生成绩数据统计看板/h1, unsafe_allow_htmlTrue)# ---------- 生成模拟数据 ----------np.random.seed(2025)n 120student_id [fS{i:04d} for i in range(1, n1)]class_list np.random.choice([计科1班, 计科2班, 软工1班], sizen)subject_list np.random.choice([高数, Python, 英语], sizen)term_list np.random.choice([第1学期, 第2学期, 第3学期], sizen)score np.random.randint(40, 98, sizen)df_raw pd.DataFrame({学号: student_id,班级: class_list,科目: subject_list,学期: term_list,分数: score})# ---------- 数据预处理 ----------# 剔除异常值df df_raw[(df_raw[分数] 0) (df_raw[分数] 100)].copy()# 新增分数段def get_level(s):if s 60:return 不及格(60)elif s 80:return 良好(60~79)else:return 优秀(80~100)df[分数段] df[分数].apply(get_level)# ---------- 计算核心指标指标卡片 ----------total_cnt len(df)avg_score round(df[分数].mean(), 2)pass_rate round(len(df[df[分数]60]) / total_cnt * 100, 2)excellent_rate round(len(df[df[分数]80]) / total_cnt * 100, 2)# 卡片布局col1, col2, col3, col4 st.columns(4)with col1:st.metric(总学生记录数, valuetotal_cnt)with col2:st.metric(平均分, valueavg_score)with col3:st.metric(及格率(%), valuepass_rate)with col4:st.metric(优秀率(%), valueexcellent_rate)st.markdown(---)# ---------- 图表区域 ----------c_left, c_right st.columns(2)with c_left:st.subheader(各班平均分对比)class_avg df.groupby(班级)[分数].mean().reset_index()fig_bar px.bar(class_avg, x班级, y分数, color班级,color_discrete_sequence[#165DFF,#FF7D00,#00B42A])st.plotly_chart(fig_bar)with c_right:st.subheader(各学期平均分趋势)term_avg df.groupby(学期)[分数].mean().reset_index()fig_line px.line(term_avg, x学期, y分数, markersTrue,color_discrete_sequence[#165DFF])st.plotly_chart(fig_line)c2_left, c2_right st.columns(2)with c2_left:st.subheader(明细数据表)st.dataframe(df)with c2_right:st.subheader(分数段占比环形图)level_cnt df[分数段].value_counts().reset_index(name数量)fig_pie px.pie(level_cnt, namesindex, values数量, hole0.4,color_discrete_sequence[#165DFF,#FF7D00,#00B42A])st.plotly_chart(fig_pie)任务5实验结果验证与总结本次基于Streamlit、Pandas、Plotly完成学生成绩可视化看板实验过程中遇到多处环境与代码问题。1. 编码报错Windows中文CMD默认GBK编码安装库时出现 UnicodeEncodeError 。解决设置 PYTHONUTF81 强制使用UTF-8编码。​2. 多Python环境不一致库安装在Anaconda环境但使用系统自带IDLE运行提示 ModuleNotFoundError 。解决使用Anaconda Prompt或在VS Code切换解释器为Anaconda环境在对应环境执行启动命令。​3. 依赖版本兼容问题numpy版本过高引发导入失败。解决卸载numpy2.x安装 numpy2 的兼容版本。​4. 代码API版本不兼容旧版Streamlit不支持 st.divider() 和 use_container_width 参数运行时报属性错误。解决 st.divider() 替换为 st.markdown(---) 删除 use_container_widthTrue 参数。​5. Plotly环形图列名匹配错误 value_counts 统计生成的列名和代码不一致触发 ValueError 。解决将饼图 names 参数改为 index values 指定为 数量 。​6. Python缩进报错复制代码引入多余空格出现 IndentationError 。解决对齐代码删除行首多余空格保证缩进规范。最终修改后看板成功运行包含指标卡片、柱状图、折线图、环形图与明细表格实现预定可视化需求。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号