从零搭建数据可视化学习系统:基于 Streamlit 的交互式 Python 学习平台
一、系统核心设计思路1. 系统定位与功能规划该系统核心目标是让学习者无需配置复杂环境通过 Web 界面选择对应章节的实验文件一键运行代码并查看代码运行的控制台输出Matplotlib 绘制的可视化图表关键变量DataFrame、数组、模型结果的结构化展示每个实验对应的核心知识点解析2. 技术栈选择前端交互Streamlit快速搭建数据科学 Web 应用无需前端开发经验数据处理NumPy、Pandas覆盖数值计算与表格数据操作可视化Matplotlib兼容绝大部分数据可视化场景代码执行Python 原生 exec 函数 命名空间隔离安全执行用户 / 实验代码二、系统核心代码实现1. 环境准备与依赖安装首先安装系统所需依赖pip install streamlit pandas numpy matplotlib scikit-learn imbalanced-learn tensorflow2. 核心配置模块定义章节与文件映射、路径处理等基础配置确保系统能准确定位各章节的实验文件CHAPTER_PATHS { 第1章 Python基础知识: ./第1章 Python基础知识, 第2章 Numpy: ./第2章 Numpy, 第3章 Pandas: ./第3章 Pandas, # 其余章节省略 } CHAPTER_STEPS { 第1章 Python基础知识: [ 1.3.py基本数据类型, 1.4.py序列操作, # 其余实验省略 ] }3. 文件路径处理工具函数解决实验文件显示名称与实际文件名的匹配问题兼容中英文括号、空格差异def get_step_filename(display_name): return display_name.split()[0].strip() def find_real_file(chapter_path, base_name): # 自动查找真实.py文件兼容括号、空格、编码 ...4. 代码执行核心函数实现代码的安全执行、输出捕获、图表提取与变量解析def run_step_code(chapter_path, step_file): # 重定向输出捕获print sys.stdout captured_output # 重写plt.show()拦截图表 def custom_show(): captured_figures.append(fig) # 隔离执行代码 exec(code, namespace) # 返回输出、图片、变量 return {stdout: print_content, images: images, variables: result_value}5. 结果展示函数统一格式化展示代码运行结果文本、图表、变量def display_result(result): # 展示文本输出 st.text(result[stdout]) # 展示图片 for img in result[images]: st.image(img) # 展示数据表格 st.dataframe(result[variables])6. 知识点提示与主界面搭建为每个实验文件配置核心知识点并构建 Streamlit 交互界面def main(): st.set_page_config(layoutwide) st.title(数据可视化学习系统) # 侧边栏选择章节与实验 selected_chapter st.sidebar.selectbox(选择章节, CHAPTER_PATHS.keys()) selected_step st.sidebar.selectbox(选择实验, CHAPTER_STEPS[selected_chapter]) # 运行实验并展示结果 if st.button(运行实验): result run_step_code(...) display_result(result)三、系统使用指南1. 目录结构准备将各章节的实验代码文件按如下目录结构存放2. 启动系统在终端执行以下命令启动 Streamlit 应用streamlit run 数据可视化学习系统.py3. 操作流程侧边栏选择学习章节如 “第 4 章 Matplotlib”选择对应实验文件如 “4.2.1.py散点图”查看核心知识点解析点击 “运行当前实验” 按钮查看代码运行结果输出、图表、变量根据错误提示修复代码如有重新运行。四、系统扩展与优化方向1. 功能扩展增加代码编辑功能允许用户修改实验代码后再运行加入作业提交与批改模块支持学习者提交代码自动检测结果正确性增加进度记录记录用户已完成的实验生成学习报告支持更多可视化库如 Seaborn、Plotly、Bokeh 等。2. 性能优化代码执行缓存对已运行过的代码结果进行缓存避免重复执行异步执行使用多线程 / 多进程处理代码执行避免界面卡顿资源限制限制代码执行时间和内存使用避免恶意代码导致系统崩溃。3. 交互优化增加代码高亮显示展示实验文件的原始代码支持暗黑模式适配不同使用场景移动端适配优化小屏幕设备的显示效果。五、总结本数据可视化学习系统基于 Streamlit 实现了 “知识点解析 代码运行 结果展示” 的一站式学习体验覆盖从 Python 基础到深度学习的全流程数据可视化知识点。系统的核心优势在于无需复杂环境配置开箱即用代码执行环境隔离安全可靠结果展示结构化便于理解知识点与实验紧密结合边学边练。六、视频演示数据可视化学习系统