marimo 数据仪表板:20 分钟搭出一个可交互的 Python 数据分析应用

发布时间:2026/9/6 21:21:17

marimo 数据仪表板:20 分钟搭出一个可交互的 Python 数据分析应用
marimo 数据仪表板:20 分钟搭出一个可交互的 Python 数据分析应用【免费下载链接】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用 marimo 可以把你写的 Python 脚本直接变成可交互的数据仪表板,不需要单独维护前端页面。读完这篇,你就能搭出一个带下拉筛选、趋势图和表格的销售数据看板,并在本地跑起来给别人看。一、它到底解决了什么问题先说几个很真实的场景:改一个筛选条件,整本 notebook 从头重跑一遍;Python 脚本和前端页面分开写,改一处要同步两处;用户点一下下拉框,界面转两秒才出图。marimo 的思路是把整本 notebook 当成一张依赖图:每个单元格声明自己引用了哪些变量,执行引擎记下这些引用关系,之后只重跑真正受影响的节点。依赖追踪有点像浏览器的增量渲染,输入变了只刷新相关区块,其余部分保持不动。这套机制主要落在marimo/_runtime/(执行与调度)和marimo/_ast/(静态解析变量引用)两个模块里,了解路径即可,不用展开读。二、从零到可交互:一条线搭完先装好环境并约定一个运行方式:文件保存为sales_dashboard.py,之后随时可以起一个本地服务来看效果。pip install marimo[recommended] marimo run sales_dashboard.py然后写第一个单元格:导入数据。这里读的是本地 CSV,换成你自己的文件,只要保证后面代码引用的列名一致就行。import marimo as mo import pandas as pd mo.ui.title(月度销售看板) sales pd.read_csv(monthly_sales.csv)再建两个控件:区域下拉框和日期范围。它们会自动出现在仪表板的输入区,后面的单元格直接引用它们的值,你改一下控件上的选项就能换成自己的维度。region mo.ui.dropdown( [全国, 华东, 华南, 华北, 西部], value全国, label分析区域, ) start, end mo.ui.date_range(label时间范围)最后一步是渲染:用 plotly 画趋势线,同时把原始数据用表格组件展示出来。单元格里返回图表对象和表格,marimo 就会自动渲染,不需要任何前端代码。import plotly.express as px def make_chart(area: str): d sales[sales[region] area] return px.line(d, xmonth, yrevenue, title月度销售趋势) make_chart(region) mo.ui.dataframe(sales.head())跑起来之后,切换下拉框只会重新执行图表那个单元格,读数据的单元格不会重跑——这就是前面说的依赖追踪在工作。marimo 数据仪表板的多列布局效果三、让仪表板真正跑起来控件和图表都写好后,怎么把它们排到一行里?marimo 的多列做法很直接:创建应用时声明widthcolumns,再给每个单元格用columnN指定它落在第几列。下面的片段把筛选器放在左列、图表放在右列,两列各自独立成单元格,依赖关系依然由引擎追踪。import marimo app marimo.App(widthcolumns) app.cell(column0) def _(): import marimo as mo region mo.ui.dropdown([华东, 华南], value华东) return region app.cell(column1) def _(region): import plotly.express as px return px.line(sales, xmonth, yrevenue)如果想要更复杂的网格排布(图表占 3 行、KPI 卡片各占 1 格这种),可以参考仓库里的 examples/layouts/grid-dashboard.py,它通过一个 JSON 布局文件描述每个单元格在网格中的位置,思路是通用的。marimo 数据仪表板中表格的筛选与排序组件按用途分三类,选型时对照下面这张表就够了:类别常用组件什么时候用输入类dropdown、slider、date_range让用户筛选、调参展示类ui.dataframe、plotly/altair 图表呈现查询结果与趋势容器类columns、grid 布局把多个面板排进网格四、上生产前必须处理的三件事密钥与凭证不要写死在单元格里数据库账号密码硬编码在 notebook 里,等于随 git 一起泄露。marimo 提供mo.secrets,值可以从环境变量或本地文件里取,单元格里只拿到引用,不拿到明文。db mo.secrets( hostenv:DB_HOST, passwordenv:DB_PASSWORD, )给慢计算加缓存大表重复加载是最常见的卡顿来源。把昂贵的加载函数用mo.cache包一层,依赖没变时直接复用上次的结果,省掉重新读文件。如果数据本身太大,可以考虑先落成 Parquet 分片,单元格里按分片读,而不是一次全量载入。mo.cache def load_sales() - pd.DataFrame: return pd.read_parquet(sales.parquet)本地调试与导出的取舍三种方式覆盖不同阶段:marimo run起本地服务,适合开发时随时看最新交互效果;marimo export html把仪表板导出成静态页面,发给不装 Python 的同事也能用;要部署到服务器上长期跑,仓库里 docker/Dockerfile 已经给了一份现成的容器化起点。marimo run sales_dashboard.py marimo export html sales_dashboard.pymarimo 数据仪表板应用视图的配置项五、延伸阅读与下一步docs/getting_started/ 有安装、快速上手和核心概念三篇,建议按顺序过一遍;examples/layouts/ 里的 columns 和 grid-dashboard 两个示例覆盖了两种主流排布,改改数据就能复用;想确认某个 UI 组件的参数,可以直接翻 marimo/_plugins/ui/ 下的实现,每个组件一个文件,docstring 写得比较全。动手建议:拿你手头任意一个 CSV,给自己定个 30 分钟的小任务——第一列放一个区域或类别的下拉框,第二列放一张随它变化的折线图,用marimo run跑起来,切换一下选项确认只有图表单元格重跑。做到这一步,你就已经完整走了一遍 marimo 的响应式执行模型。marimo 数据仪表板的整体运行效果【免费下载链接】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),仅供参考

相关新闻

集装箱式数据中心实战指南:从系统拆解到运维排障

集装箱式数据中心实战指南:从系统拆解到运维排障

2026/9/6 21:21:17

简介:集装箱式数据中心是近年兴起的数据中心创新形态,将服务器、存储、网络设备与电力冷却系统集成于标准海运集装箱内,实现模块化、即插即用的快速部署。这份文档面向数据中心规划、运维及云计算基础设施从业者,系统拆解了集装箱…

Hindsight 记忆系统:三种部署路径,Docker 最快 2 分钟跑通

Hindsight 记忆系统:三种部署路径,Docker 最快 2 分钟跑通

2026/9/6 21:21:17

Hindsight 记忆系统:三种部署路径,Docker 最快 2 分钟跑通 【免费下载链接】hindsight Hindsight: Agent Memory That Learns 项目地址: https://gitcode.com/GitHub_Trending/hindsight2/hindsight Hindsight 是一个让 AI 智能体持续学习的记忆系…

智慧建造施工阶段落地实践:BIM与智慧工地如何融入项目管理?

智慧建造施工阶段落地实践:BIM与智慧工地如何融入项目管理?

2026/9/6 21:11:16

简介:这份PPT聚焦智慧建造与BIM技术在施工阶段的落地实践,特别适合施工企业管理人员、项目技术负责人以及关注智慧工地转型的工程从业者。内容共90页,从行业背景与政策文件切入,梳理数字化、在线化、智能化的核心特征,…

Czkawka / Krokiet:免费、完整的重复文件清理工具

Czkawka / Krokiet:免费、完整的重复文件清理工具

2026/9/7 2:11:30

Czkawka / Krokiet:免费、完整的重复文件清理工具 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka Czkawka 是一个用 Rust 写的磁盘清理…

从零调通 WeKnora API:语义检索与智能问答实战指南

从零调通 WeKnora API:语义检索与智能问答实战指南

2026/9/7 2:11:30

从零调通 WeKnora API:语义检索与智能问答实战指南 【免费下载链接】WeKnora Open-source LLM knowledge platform: turn raw documents into a queryable RAG, an autonomous reasoning agent, and a self-maintaining Wiki. 项目地址: https://gitcode.com/GitH…

OpenCV 形态学变换进阶教程:Opening、Closing、Morphological Gradient、Top Hat 与 Black Hat 的 morphologyEx 实战解析

OpenCV 形态学变换进阶教程:Opening、Closing、Morphological Gradient、Top Hat 与 Black Hat 的 morphologyEx 实战解析

2026/9/7 2:11:30

OpenCV 形态学变换进阶教程:Opening、Closing、Morphological Gradient、Top Hat 与 Black Hat 的 morphologyEx 实战解析 【免费下载链接】opencv Open Source Computer Vision Library 项目地址: https://gitcode.com/GitHub_Trending/opencv31/opencv 本教…

[光学原理与应用-629]:CLBO 晶体的最佳温度的双重含义?

[光学原理与应用-629]:CLBO 晶体的最佳温度的双重含义?

2026/9/7 2:11:30

CLBO 晶体最佳温度(532→266nm,Ⅰ 类 oo→e)⚠️两个完全不同的温度概念,工程极易混淆:1)相位匹配最佳温度(光学匹配温度):满足\(\Delta k0\),倍频转换效率最…

离线编程器实战:解决量产固件泄露、超产与效率难题

离线编程器实战:解决量产固件泄露、超产与效率难题

2026/9/7 2:11:29

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

Docker 24.0.5离线安装全攻略:RPM与二进制两种方式详解

Docker 24.0.5离线安装全攻略:RPM与二进制两种方式详解

2026/9/7 2:01:29

简介:docker 24.0.5 离线安装包专为无法连接公网的环境设计,帮助运维人员在隔离网络或离线服务器上快速完成Docker部署。资源共18个文件,包含17个rpm依赖包与1个install_docker.sh安装脚本,压缩后体积108.02MB,一次下载…

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

中国人民大学杨琳团队《Nature Communications》 | 全球潮汐湿地土壤有机碳时空格局与环境驱动:一项2009-2020年的全球评估

2026/9/6 1:19:56

本文首发于“生态学者”!从“湿地面积”到“土壤碳密度”:为什么需要重新认识潮汐湿地蓝碳变化?潮汐湿地位于陆地与海洋的交汇地带,包括红树林、盐沼和潮滩,是全球重要的蓝碳生态系统。其土壤能够长期储存大量有机碳&a…

adb抓包

adb抓包

2026/9/6 1:19:56

前言 本文介绍如何通过 tcpdump 在 Android 手机上抓取网络数据包,并在电脑端使用 Wireshark 进行分析。适用于需要排查 App 网络请求、分析接口调用或调试网络问题的开发与测试场景。1. 手机要有 root 权限2. 下载 tcpdump3. adb push C:\Users\zhangkuixun\Downlo…

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战

2026/9/6 1:19:56

大模型推理镜像极简瘦身:从 25GB 巨无霸到 3GB 精简镜像实战 在云原生基础设施中,容器镜像体积直接决定了服务的部署速度与弹性扩容敏捷度。对于传统的 Go / Java 微服务,镜像体积通常被严格控制在 50MB 到 200MB 以内,拉取镜像只…

基于YOLOv8和PyQt5的麦穗稻穗检测识别系统设计与实现

基于YOLOv8和PyQt5的麦穗稻穗检测识别系统设计与实现

2026/9/7 0:01:24

这次我们来看一个把目标检测算法和桌面端工具结合得很典型的项目:基于 YOLOv8 PyQt5 的麦穗稻穗检测识别系统。这个项目本身不是新概念,但它的价值在于落地形态很完整。YOLOv8 负责核心的麦穗稻穗目标检测,PyQt5 负责提供可视化的桌面交互界…

UL 1642锂电池安全标准全解析:测试项目、认证流程与避坑指南

UL 1642锂电池安全标准全解析:测试项目、认证流程与避坑指南

2026/9/7 0:01:24

简介:UL 1642是锂电池安全领域的重要规范,本中文版资源适合锂电池制造商、检测机构工程师及产品认证相关人员阅读,用于理解电池在设计与制造层面的安全要求、测试方法与合规要点。资源共1个PDF文件,压缩包大小834KB,便…

BS EN 13814-1-2019游乐设施安全标准:设计与制造核心要点解析

BS EN 13814-1-2019游乐设施安全标准:设计与制造核心要点解析

2026/9/7 0:01:24

简介:BS EN 13814-1:2019是英国采纳欧洲标准EN 13814-1:2019的正式版本,由BSI标准出版,重点规定游乐设施和游乐设备在设计与制造环节的安全准则,与BS EN 13814-2:2019、BS EN 13814-3:2019共同取代旧版BS EN 13814:2004。该标准面…

远程协作的工作台整理

远程协作的工作台整理

2026/9/3 6:56:24

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/4 7:42:10

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/6 23:21:51

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…