首页 / 资讯中心 / 文章详情

从DataFrame到交互式HTML:Data-Analysis-Agent Plotly图表生成全流程实现解析

从DataFrame到交互式HTML:Data-Analysis-Agent Plotly图表生成全流程实现解析 ★ FEATURED ARTICLE
从DataFrame到交互式HTMLData-Analysis-Agent Plotly图表生成全流程实现解析【免费下载链接】Data-Analysis-Agent你的私人数据分析助手。通过对话式交互自动生成可视化报表与商业洞察让数据决策变得像聊天一样简单。 Your personal data analysis assistant. Say goodbye to complex SQL and Excel formulas. An LLM-powered data analysis agent. Chat with your data to instantly generate visualizations and business insights. Making>项目地址: https://gitcode.com/gh_mirrors/vi/Data-Analysis-AgentData-Analysis-Agent是一个基于 LLM 的私人数据分析助手上传 Excel/CSV 数据后它会自动将数据转为 pandasDataFrame智能推荐最合适的图表类型并调用Plotly一键生成可缩放、可悬停查看数值的交互式 HTML 报表。本文将带你完整拆解从 DataFrame 到交互式 HTML 的 Plotly 图表生成全流程看懂 40 种图表背后的统一架构 项目总览上传数据到出图只需 4 步整个系统的使用流程非常简洁上传数据支持 CSV 与 Excel.xlsx自动解析为 DataFrame智能推荐LLM 分析字段类型与业务语义给出 3-5 个候选图表及理由选择图表在图表网格中单击选择双击可查看详情文档与示例生成导出自动字段映射 企业配色输出交互式 HTML 并支持下载图首页左侧上传数据与 LLM 配置右侧为图表选择网格数据入口CSV/Excel 自动加载为 DataFrame一切从数据开始。Flask 后端在 app.py 中提供/api/upload接口收到文件后先落盘到uploads/目录再按扩展名分流.xlsx→pd.read_excel默认 openpyxl 引擎失败时自动降级 xlrd.csv→pd.read_csv返回给前端的只有行数与列名真正的数据结构感知由独立模块 core/data_profiler.py 承担。DataProfiler会为每一列推断类型number / string / datetime / bool / idCSV 还支持 utf-8-sig、GBK 等多编码自动重试——这一步为后续的字段自动映射和图表推荐打下了基础。 仓库中的示例数据 uploads/工作簿1.xlsx 可以直接拿来体验完整流程。智能推荐LLM 与规则引擎双保险不知道数据适合画什么图这正是本项目的核心价值。LLM 推荐LLM/llm_recommender.py 将数据结构摘要 用户分析需求发给大模型内置 DeepSeek / MiniMax也支持任意 OpenAI 兼容接口返回推荐理由、星级评分与 X/Y/Color/Size 字段映射建议。配置管理见 LLM/llm_config_manager.py密钥可通过页面 Settings 面板或环境变量两种方式保存。规则推荐utils/recommend.py 内置了一套基于列名关键词匹配的轻量推荐规则如检测到日期列优先推折线图即使不配置 API Key 也能快速出图。图LLM 根据 source/target/value 三列结构推荐桑基图并给出字段标签图表注册中心40 Plotly 图表统一管理这是整个项目最值得关注的设计Registry 驱动架构。所有图表的元信息集中注册在 charts/registry.py 中。每个ChartMetadata记录了chart_id、分类对比/时间趋势/分布/地理/关系/占比、最少字段数、必需角色如x、y、series、数据格式说明与约束条件。前端图表列表、LLM 推荐范围、详情页文档全部从这一处读取——新增或删除图表只需改 registry前后端自动同步这就是 README 里强调的single source of truth。每个图表目录如 charts/Bar_Chart/、charts/Sankey_Chart/都遵循统一约定chart.py放实现、README.md放文档、result.html放示例双击图表卡片即可打开详情页图图表详情页左侧为 README 文档数据要求、字段说明右侧为 Plotly 交互示例核心生成流程动态导入 字段自动映射生成逻辑的枢纽是 chart_generate.py 中的generate_chart()它做四件事动态导入importlib.import_module(fcharts.{chart_type})加载对应图表模块并取出generate函数——新增图表无需改动主流程代码自动字段映射当用户未手动指定 mapping 时_auto_detect_mapping()chart_generate.py按图表类型启发式挑选列例如柱状图取第一个字符串列 第一个数值列散点图取前两个数值列统一接口契约所有图表模块必须返回 charts/base.py 定义的ChartResult含 html / spec / warnings / meta 四段框架用is_valid()校验 HTML 有效性后才写入outputs/并生成下载链接列名容错统一将列名转为字符串避免热力图等图表处理整数列名时报错以柱状图为例charts/Bar_Chart/chart.py 的generate()内部用px.bar绘图 → 数据强制转数值并去空 → 按值排序可选 top_n 截断→pio.to_html(..., include_plotlyjscdn)内联为 HTML 片段再套上带标题、数据格式说明的页面模板最终得到一个无需任何依赖、浏览器直接打开即可交互的独立 HTML 文件如 outputs/bar_chart_20260420_232455.html。图生成的分组柱状图支持悬停查看精确数值企业级配色一键切换咨询风格图表好不好看配色占一半。charts/color_schemes.py 内置了 McKinsey 蓝、BCG 绿、Bain 红、EY 四套企业配色方案生成接口只需传一个color_scheme参数即可全局换肤。柱状图模块会取方案中的primary色作为主色并统一应用白底、无描边、统一悬停等咨询报告风细节让导出的 HTML 直接可用于汇报 PPT。快速上手本地运行指南git clone https://gitcode.com/gh_mirrors/vi/Data-Analysis-Agent cd Data-Analysis-Agent pip install -r requirements.txt python app.py打开http://localhost:5017即可使用依赖 Python 3.7详见 requirements.txt。Windows 用户也可双击 start.bat 一键启动。页面主模板位于 templates/index.html图表详情模板见 templates/chart-detail.html。常见问题推荐结果为空检查 API Key 是否保存、网络能否访问 LLM 服务不配置 Key 可回退到规则推荐图表生成失败确认上传文件非空、字段类型与图表要求匹配如瀑布图至少需要 2 行数据图表数量以哪里为准以 charts/registry.py 为唯一准源写在最后Data-Analysis-Agent 用三个关键设计把数据 → 图表这件事变得开箱即用注册中心单点维护图表目录、统一ChartResult接口约束输出、Plotly 内联 HTML 保证交互体验。无论你想扩展新图表类型还是参考它的字段自动映射策略改造自己的报表工具charts/ 目录下的 40 个图表实现都是绝佳的学习样本 【免费下载链接】Data-Analysis-Agent你的私人数据分析助手。通过对话式交互自动生成可视化报表与商业洞察让数据决策变得像聊天一样简单。 Your personal data analysis assistant. Say goodbye to complex SQL and Excel formulas. An LLM-powered data analysis agent. Chat with your data to instantly generate visualizations and business insights. Making>项目地址: https://gitcode.com/gh_mirrors/vi/Data-Analysis-Agent创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站