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

1.9 KiB
Raw Blame History

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.pyto_echarts_safe_build_chart_payloadrun_analysis)。
  • 时序数据:app/services/analysis/modules/time_series.py(数据-only频谱摘要版
  • 正态性分箱:app/services/analysis/modules/basic.py
  • 路由返回:app/api/routes/analysis.pyapp/api/routes/analysis_v2.pycharts 位于 analysis.<lang>)。

与旧版差异

  • 不再生成图片;顶层不提供 charts 字段。
  • ACF/PACF 结构改变;频谱从全量矩阵切换为摘要版。
  • 正态性直方图格式为字典字段而非二维数组。

后续可选改进

  1. 路由层增加顶层 charts 别名,便于前端无感迁移。
  2. ACF/PACF 输出可改为拆分 series与旧版示例一致
  3. 频谱提供 full/summary 开关,允许返回完整矩阵或摘要。
  4. 为大数据集增加抽样/截断策略,防止超大 payload。