ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

30分钟搭好交互式数据看板:marimo Python notebook 完整教程

30分钟搭好交互式数据看板:marimo Python notebook 完整教程 30分钟搭好交互式数据看板marimo Python notebook 完整教程【免费下载链接】marimoA reactive notebook for Python — run reproducible experiments, query with SQL, execute as a script, deploy as an app, and version with git. Stored as pure Python. All in a modern, AI-native editor.项目地址: https://gitcode.com/GitHub_Trending/ma/marimomarimo 是一个响应式 Python notebook你写的只是纯 Python 文件但它能当脚本跑、当应用部署、当数据看板分享还能直接进 git 做版本管理。这篇教程面向不写前端的 Python 开发者带你从零搭一个带筛选器和图表的交互式销售看板并讲清楚它和 Jupyter 类 notebook、传统 BI 工具的本质区别。marimo 是什么传统 notebook 的执行方式很线性按顺序跑单元格改了一行往往要重跑整条链路而且产物是 .ipynb 这种 JSON 文件进 git 之后 diff 基本没法看。传统 BI 工具则反过来交互逻辑靠拖拽配置配置和数据脚本分属两套体系维护起来两头跑。marimo 的做法是把两者拆开代码就是普通 .py 文件单元格之间的依赖由运行时自动解析成一张执行图。你只改了一个筛选条件它只重算受影响的下游单元格其余部分原地不动。这套响应式执行模型让改参数—看结果的循环变成毫秒级的事而整个看板始终只是一个可以用 git 追踪的 Python 脚本。几分钟跑起来安装和启动只需要两步。装完包后把任意一个 Python 文件丢给marimo run浏览器会自动打开一个带单元格编辑器的界面按 Ctrl/Cmd Enter 执行当前单元格pip install marimo marimo run my_dashboard.py编辑器里可以直接新建单元格、拖动排序右侧还有设置面板调整主题和内核参数。响应式运行时的具体逻辑在 响应式运行时源码 里想深挖实现可以从这里入手。三个真正改变工作流的能力响应式依赖追踪。这是 marimo 最核心的机制。单元格 A 读了单元格 B 的变量B 变化时 A 才会重跑。实际场景你给看板加了一个年份滑杆拖动时只有依赖该变量的过滤逻辑和图表重算数据加载单元格不会反复执行。编辑器里打开依赖面板能直接看到这张执行图和变量流向排查这个图为什么没更新不再靠猜。内置 UI 组件。mo.ui命名空间下有一整套交互组件下拉框、滑杆、日期范围、表格、数据框、Plotly 图表等。场景做销售看板时一行mo.ui.dropdown([全国, 华东, 华南])就得到一个能参与依赖追踪的筛选器返回值直接喂给下一个单元格。不用写一行 HTML也不用引入前端框架。全部组件可以在 内置 UI 组件源码 中逐个对照。布局系统。组件怎么摆mo.hstack横向排、mo.vstack纵向排、mo.sidebar把筛选器塞进侧边栏三件套就能拼出大部分看板结构需要更精细的网格时可以在 App 视图里用可视化布局编辑器拖拽布局会存成 JSON 文件随项目走。场景把区域筛选器和日期选择器放进侧栏主区域两列放趋势图和表格。现成的排列方式可以翻 布局示例合集 抄作业。跟着搭一个销售看板按接数据 → 加交互 → 出图表 → 排布局四步走。先看关键代码长什么样其余细节留给你照着补sales pd.read_csv(monthly_sales.csv) region mo.ui.dropdown([全国, 华东, 华南], label区域) df sales[sales[region] region.value] mo.dataframe(df) mo.hstack([trend_chart, mo.stat(总营收, df[revenue].sum())])接数据这一步就是普通的 pandas 读取mo.dataframe会渲染成带排序、筛选能力的表格。加交互时注意region.value被下一个单元格引用了所以依赖图会自动建立下拉框 → 过滤 → 表格/图表这条链你不用手写任何刷新逻辑。出图表时可以直接mo.ui.plotly包一下 plotly 对象或者对 DuckDB/SQL 场景直接用mo.sql。排布局用mo.hstack把图表和指标卡片横排嫌挤的话再把筛选器挪进mo.sidebar。从个人工具到团队分享三种交付方式对应不同场景按需取用本地marimo run开发阶段用。带完整编辑器改代码即时生效适合自己调试。marimo export html生成静态 HTML 快照发给同事直接打开适合结果汇报类场景注意静态版不含交互逻辑。marimo export html-wasm基于 WebAssembly 的自包含 HTML浏览器里直接跑 Python交互也能带过去适合发给不懂 Python 的 stakeholder。生产环境部署可以看 官方导出文档 里的完整选项仓库根目录的 docker/ 下也提供了容器化方案把 notebook 打进镜像跑在服务端是最稳妥的做法。新手避坑与进阶路线几个常见误区先说清楚。第一不必为 marimo 装任何前端环境pip install marimo之后开箱即用。第二单元格是按依赖执行而不是按顺序执行跨单元格共享可变对象容易踩坑需要跨单元格保留状态时用mo.state。第三导出 HTML 前先确认对方要不要交互要交互就选 html-wasm纯汇报就选静态 html选错会来回返工。进阶路线建议这样走先读 docs/getting_started/ 下的快速上手和核心概念把响应式模型吃透再通读 交互组件示例把 dropdown、slider、dataframe 这几个高频组件用熟最后结合 examples/ 里的完整案例改造自己的第一个看板。想深挖原理的话克隆源码仓库git clone https://gitcode.com/GitHub_Trending/ma/marimo翻一翻marimo/_runtime/和marimo/_output/你会对整个执行链路有更具体的认识。别光收藏教程。现在打开终端marimo run一个文件三十分钟后你会拥有一个能交互、能分享、能进 git 的数据看板。【免费下载链接】marimoA reactive notebook for Python — run reproducible experiments, query with SQL, execute as a script, deploy as an app, and version with git. Stored as pure Python. All in a modern, AI-native editor.项目地址: https://gitcode.com/GitHub_Trending/ma/marimo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表