# MoonPlot 能力路线图

更新时间：2026-10-24。

目标是一个可用、易接入、可逐步完善的 MoonBit 画图库。Matplotlib 是能力与行为的参考，
不再要求复制其全部 API、Python 动态协议或所有参数。实现可以采用适合 MoonBit 的类型和调用方式。
以“用户能完成一个绘图任务、能复现结果”验收，不用 API 数量或测试数量推算整体百分比。

## 四个大目标

| 目标 | 用户得到什么 | 验收边界与当前状态 |
| --- | --- | --- |
| **G1：基础二维 SVG 可用版（M1）** | 折线、散点、柱状图；标题、轴标签、刻度、网格、图例；可运行多图示例 | 已验收：修复 grid 单轴与柱宽范围错误、补四角图例，实际出图与相关四目标回归通过 |
| **G2：Rabbita 交互 DOM** | 在 Rabbit-TEA/Rabbita 应用中返回可组合的 DOM，响应悬停、点击和数据更新 | G2.1 真实 DOM 与基础交互已验收；M2 v0.2.0 补齐多图资源隔离及独立消费版本包，详见[M2](MILESTONE_M2.md) |
| **G3：常用数据与科学绘图场景** | 日期趋势、分类对比、分布统计、热图及更复杂的组合图 | 已有大量基础实现；每次选择具体场景，补便捷入口/例子、修真实问题，逐项验收 |
| **G4：导出、接入与持续交付** | 清晰的安装和错误信息、稳定的库入口、更多输出方式、小步发布 | SVG、M2 源码版本包与独立接入验证；0.2.1 合并为 Lampese/mathplotlib，发布状态见接入说明，PNG/PDF与性能按需推进 |

G4 的文档和质量工作随每个里程碑推进。M1 与 G2.1 已完成验收；后续继续按具体场景扩展 G2/G3。
G3 不需要等全部图表参数一致才交付；其内部顺序由实际使用需求决定。

## M1：现在版本加少量特性即可使用

用户已选择“基础出图稳定、少量易用性特性”。本轮范围固定为：

1. 排查并修复先前三图工作流的真实错误。定位结果是默认 `which="both"` 时
   `grid(axis="y")` 被错误拒绝；不需要通过手动刻度绕开。
2. 修复实际视觉检查发现的柱状图越框，范围计算与绘制共享数据宽度规则，包含水平柱和单柱。
3. 为现有图例增加四角位置。默认仍为右上；保留自动/显式条目行为，每个 Axes 独立设置。
4. 提供运行后可直接保存的 Gallery，并检查实际 SVG 和渲染图；保持原有两个例子可用。
5. 通过相关新旧测试、四目标检查、接口检查；用少量现有测试冒烟直方图、图像与日期入口。
6. 记录已验收场景及限制，提交可复现的源码和预览。

逐项结果维护于[能力与验收清单](CAPABILITIES.md)；具体运行命令和结果见[M1 验收记录](MILESTONE_M1.md)。
M1 不要求独立 PNG/PDF 后端、交互 DOM、3D、动画或完整字体/TeX 排版。

## M2：可接入的浏览器交互绘图

在 G2.1 基础上保留已完成的 hover/click、图例、数据更新、响应式与 UI，
补齐 SVG ID/local URL/href 链隔离；用双图渐变/裁剪的同页真实像素验证重绘、换序和重挂载。
发布 v0.2.0 的两个精简模块 ZIP 与显式独立 workspace，仓库外四目标静态及真实浏览器消费验收。
[范围、命令与限制](MILESTONE_M2.md)已固定；缩放、平移、框选和触摸不属于 M2。
0.2.0 原命名空间权限预检失败，已交付 GitHub 源码版本包；用户随后明确要求使用 Lampese/ 前缀发布，
0.2.1 将核心与组件合并为单一 module。当前安装路径与发布状态见 [接入说明](PUBLISHING.md)。

## 后续如何推进

每个后续切片先明确一个用户场景、输入与输出，复用已有能力，提交前验证真实结果。
发现失败就定位并修复，不能把一个未验收的实现当完成，也不因为失败而默默停滞。
公共 API 只在有实际用途时扩充；保留现有调用可用，并在生成接口中审查变更。

当前架构为 Scene → render IR → SVG；`to_drawing()` 在同次绘制中收集命中点，
Rabbita adapter 将 SVG 转成公开节点树，复用现有坐标和布局算法。
Rabbita 组件位于同 module 的 JS-only 子包；模块安装统一解析依赖，核心包不 import UI，静态输出继续支持原平台。

## 当前资料与历史参考

- [当前执行检查点](MIGRATION_STATUS.md)：下一动作、实施与验收状态。
- [现有能力](CAPABILITIES.md)：用户可调用的功能和实际限制。
- [详细使用指南](USAGE.md)与[接口行为参考](COMPATIBILITY.md)。
- [原完整 API 迁移计划](archive/migration-plan-api-history.md)与[历史执行记录](archive/migration-status-through-2026-10-24.md)：保留历史，不作为现行任务清单。
- [历史 API 对比](MIGRATION_PROGRESS.md)：原口径与数据仍可查，不代表当前画图库整体完成率。
