智能图表 是什么
智能图表是一个本地优先的命令行制图 Skill,能够把 CSV、TSV、TXT、XLSX、XLS 和数组式 JSON 转成独立的交互式 ECharts HTML。它支持数据画像、列名规范化、清洗、聚合前检查、32 种图表类型、三种主题和多图批量生成。ECharts 资源随包内置并内联到输出,因此生成后的 HTML 不需要 CDN 或网络即可打开。
从画像到出图
数据不熟悉时先运行 profile,查看列类型、基数、缺失、样例、时间范围、粒度、相关性和异常行,再决定维度、度量、聚合方式与图表。多行表头或前置说明要根据实际画像选择 header-row、skiprows 或 drop-rows,不能猜固定行号。正式生成时通过 cli.py 指定图表类型、标题、坐标轴、主题、语言、尺寸和显式 output-dir;成功结果包含 html_path、实际绘制统计和前十行预览,方便核对图表口径。
格式、图表与交互
支持折线、柱状、饼图、散点、热力、地图、漏斗、桑基、日历、箱线等 32 种类型,也支持多文件合并和一次生成多图。文件默认有 100 MB 上限,多文件合并要求至少一半列结构重叠;JSON 只展开一层嵌套对象。输出 HTML 自带缩放、横向滚动、全屏和可编辑标题。地图默认使用包内中国或世界 GeoJSON,城市或自定义区域需要显式提供自己的文件。
转换安全和依赖
需要 Python 3.11 兼容环境以及 pandas、numpy、openpyxl、xlrd 的兼容版本区间。transform-code 只能使用 df、pd、np 和安全内置函数,经过关键词黑名单、AST 白名单、危险属性封禁、文件或网络 I/O 禁止和 10 秒超时检查,必须产生 result DataFrame。技能不访问数据库、实时流或外部网络;但输入文件和输出目录仍可能包含敏感数据,使用者要控制路径和权限。
交付解读与限制
图表说明不是对图形外观的复述,而应回答数据中最值得注意的发现。规范建议用“结论、证据、边界”两到四句,并引用实际 plot_stats、data_preview 或 profile 信号;出现疑似未聚合提醒时,先按维度聚合再下结论。它适合一次性分析和离线交付,不是数据库仪表盘、实时监控、超过 100 MB 数据处理器或非表格媒体工具。
来源与许可
本条目依据 SkillHub user_5b28ea14/smart-charts 8.4.0 详情、完整 SKILL.md、requirements.txt 和 REFERENCE.md 整理,SKILL.md 声明 MIT。平台展示名是 smart-charts,frontmatter 的 display_name 明确为智能图表,故导航使用中文名。
常见问题
1. 它能处理哪些数据文件?
支持 CSV、TSV、TXT、XLSX、XLS 和数组式 JSON。JSON 只展开一层嵌套对象;数据库、实时流和图片、音频、视频等非表格数据不在支持范围。
2. 支持多少种图表?
主文件列出 32 种图表类型,并提供 default、classic、dark 三个主题。具体图表仍要根据数据粒度、类别数量和用户问题选择,不能只按数量追求复杂图形。
3. 必须联网吗?
不必须。ECharts JavaScript 随包内置并内联到每个 HTML,生成和打开图表都可以离线完成;只有用户自行提供外部数据源时才会产生额外网络要求。
4. 如何处理脏数据和多行表头?
先运行 profile 或 data_parser 查看真实行布局,再用 header-row、skiprows、drop-rows 和受限 transform-code 清理。行号必须来自画像,不能凭经验删除数据。
5. 转换代码安全吗?
代码只能访问 df、pd、np 和安全内置函数,经过黑名单、AST 白名单、危险属性封禁、文件网络 I/O 禁止和 10 秒超时检查,并必须返回 result DataFrame。
6. 输出文件在哪里?
生成时应显式传 output-dir,成功结果会返回 html_path、plot_stats 和 data_preview。显式目录能避免输出落在用户找不到的当前工作目录中。
7. 哪些数据不支持?
不支持数据库、实时或流式数据、超过 100 MB 的单文件、两层以上嵌套 JSON,以及图片、音频、视频等非表格内容。城市地图还需要用户提供 GeoJSON。
8. 怎样写图表解读?
用结论、具体证据和口径边界组织两到四句说明,数字以实际 plot_stats 和 data_preview 为准。若有疑似未聚合提醒,先按 x 维度聚合再写结论。