Json-Python-Server/docs/关于charts模式的实现.md
2026-01-29 18:18:32 +08:00

33 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# charts 模式实现说明(现行版)
> 旧版实现在 `docs/旧的关于charts模式的实现.md`。
## 现状概览
- 后端强制 `generate_plots=False`,所有步骤只产出数据,`analysis.<lang>.charts` 收口。
- `images` 为空对象,保留兼容;`steps[].chart` 绑定对应图表 key。
- 清洗函数 `to_echarts_safe` 递归处理 NaN/Inf/Timestamp/numpy/Decimal确保 JSON-safe。
## 关键结构
- 响应:`analysis.<lang>.charts`(顶层未暴露 charts
- 时间序列、季节分解、VAR 等使用 dataset相关性使用扁平 heatmapPCA/聚类/因子用 records。
- ACF/PACF每个列含 `acf`/`pacf` 两个序列(与旧文档拆成两条 series 不同)。
- 正态性:每列包含 histogram 分箱(后端 `np.histogram`),加 Shapiro/JB 结果。
- 频谱当前为摘要版spectrogram 只给均值+shapeperiodogram 仅前 20 点)。
## 文件与代码映射
- 清洗与汇总:`app/services/analysis_system.py``to_echarts_safe`、`_build_chart_payload`、`run_analysis`)。
- 时序数据:`app/services/analysis/modules/time_series.py`(数据-only频谱摘要版
- 正态性分箱:`app/services/analysis/modules/basic.py`。
- 路由返回:`app/api/routes/analysis.py`、`app/api/routes/analysis_v2.py``charts` 位于 `analysis.<lang>`)。
## 与旧版差异
- 不再生成图片;顶层不提供 `charts` 字段。
- ACF/PACF 结构改变;频谱从全量矩阵切换为摘要版。
- 正态性直方图格式为字典字段而非二维数组。
## 后续可选改进
1) 路由层增加顶层 `charts` 别名,便于前端无感迁移。
2) ACF/PACF 输出可改为拆分 series与旧版示例一致
3) 频谱提供 `full/summary` 开关,允许返回完整矩阵或摘要。
4) 为大数据集增加抽样/截断策略,防止超大 payload。