Skip to content

Codex/vchart statplots - #4705

Merged
xile611 merged 45 commits into
developfrom
codex/vchart-statplots
Oct 14, 2026
Merged

xile611 merged 45 commits into
developfrom
codex/vchart-statplots

Conversation

@xile611

@xile611 xile611 commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

[中文版模板 / Chinese template]

🤔 This is a ...

  • New feature
  • Bug fix
  • TypeScript definition update
  • Bundle size optimization
  • Performance optimization
  • Enhancement feature
  • Refactoring
  • Update dependency
  • Code style optimization
  • Test Case
  • Branch merge
  • Release
  • Site / documentation update
  • Demo update
  • Workflow
  • Other (about what?)

🔗 Related issue link

🔗 Related PR link

🐞 Bugserver case id

💡 Background and solution

📝 Changelog

Language Changelog
🇺🇸 English
🇨🇳 Chinese

☑️ Self-Check before Merge

⚠️ Please check all items below before requesting a reviewing. ⚠️

  • Doc is updated/provided or not needed
  • Demo is updated/provided or not needed
  • TypeScript definition is updated/provided or not needed
  • Changelog is provided or not needed

🚀 Summary

copilot:summary

🔍 Walkthrough

copilot:walkthrough

Add observation-key brush linking and fix brush cleanup.

Apply updated band-axis specs and preserve continuous legend extents.

Include public types, schema, docs, unit tests and visual cases.
…lery

Support 28 chart types with shared palettes, strict schemas and Python-ready data contracts.

Add examples, gallery navigation, automatic startup, docs, benchmarks and CI coverage.

Reuse native VChart light and dark themes and expose named or custom color palettes.
Align shared row boundaries to device pixels after layout.
Keep fixed column separators and sample dense observation labels.
Add regressions for themes, fractional DPR, updates and chart sizes.

Validation: 67 unit tests and 14 browser tests passed.
手动 resize 保存当前尺寸,避免 updateSpec 重建时恢复旧布局尺寸。
补充尺寸保持、显式 Spec 尺寸覆盖的单元回归,并加强视觉用例的真实状态断言。

验证:110 项相关核心单元测试通过,layout 目录与官方基线比较通过。
API 目录当前实现自比较通过;官方基线在新增尺寸断言中复现旧缺陷,比较中止。
相关矩阵使用正方形紧凑网格、静态五刻度色条和密集标签避让。
色条与单元格共用配色映射,保留 NA、三角遮罩及现有公共 Spec。
补充语义、实际几何、像素、Tooltip 和 10k 单元格生命周期回归,以及中文文档和示例。

验证:271 项单元测试、157 项浏览器测试通过,构建、类型、Schema 和示例检查通过。
官方视觉回归的结果及基线限制已记录在实施计划中。
Bin raw x/y observations deterministically and preserve regular hexagons through native layout.
Update schemas, gallery examples, chart selection docs and regression coverage.

Validation: 310 unit tests and 169 browser tests passed; build and contract checks passed.

BREAKING CHANGE: hexbinPlot accepts raw x/y data and optional binning.xBins.
The previous id/count/vertices input is no longer supported.
Recompute the scale domain after reInit applies changed min/max, including
range aliases and removed bounds. Keep unchanged bounds on the existing path.

Add unit coverage and a registered visual regression for simultaneous data and
axis-range updates. The focused official develop comparison passes; the full
axis baseline run is blocked by the existing band-axis theme assertion.
Redirect the package root to examples/index.html while preserving the query
string and URL hash. Document the root entry alongside the existing gallery URL.

Verified default, pairPlot with a hash, and histogram entries in Chromium.
Compute histogram bins from single-variable observations and pair plot diagonal
histograms from per-variable observations. Share finite-domain, edge and bin
lookup geometry; preserve duplicates, empty bins and deterministic boundaries.

Support explicit bin counts and optional empty pair plot diagonals. Keep group
colors and legends stable across panels, and match nested gallery variants.
Update schemas, validators, examples, Python handoff, Chinese contracts,
regressions, execution plans and recorded performance measurements.

Validation: 383 unit tests and 191 browser cases pass; type, schema, example,
catalog and lint checks pass. Focused histogram cases are stable over five
rounds, and isolated counterexamples are detected. The axis baseline limitation
is documented in the validation record.

BREAKING CHANGE: histogram accepts only value rows and no series or pre-binned
counts. pairPlot rejects data.diagonal; its optional top-level diagonal field
controls internally computed histograms or hides diagonal distributions.
Accept raw value/series rows and reuse vutils estimators.
Make KDE estimation options effective and preserve exact ECDF jumps.

BREAKING CHANGE: kdePlot and ecdfPlot now accept raw observations.
The density and cumulativeProbability input fields are no longer supported.
Reuse vutils quartiles and compute IQR whiskers and outliers per category and series.
Fix box/outlier tooltips, legend colors, and stale empty-state titles.

BREAKING CHANGE: boxPlot accepts category/value/series observations.
Replace whiskerRule with whiskers.iqrMultiplier; precomputed summaries are no longer accepted.
Accept raw category/value/series observations and share KDE preparation with kdePlot.
Update density normalization, summary tooltips, schemas, docs, examples and regression coverage.
count、混淆矩阵、ROC、PR、校准、QQ 和 ACF/PACF 接收逐样本观测并内部计算统计量。
统一两种矩阵的方形布局、轴和静态色条,改善 ROC 对比及混淆矩阵主示例。
同步类型、Schema、生成校验器、中文文档、计划、Python 对照和性能记录。

验证:539 项单元通过,266 项浏览器用例分别验证通过;相关矩阵 41 张前后截图一致,原生热力图对 develop 无差异。
QQ 与置信区间依赖相邻 VUtil 的 normalQuantile;上游 API 尚待发布,再更新依赖下限和 Rush 锁文件。

BREAKING CHANGE: 上述图表不再接受预先聚合的统计结果,迁移为文档规定的原始观测输入。
Compute missingness, correlations, grouped intervals, residuals and learning-curve
summaries from raw observations or fold scores. Preserve external estimates and model
results through explicit input modes, and filter related interval marks together through
legends.

Update generated schemas, examples, Chinese migration docs, Python fixtures and
performance records. Verified 595 unit tests and schema/example/catalog checks. Prior
browser coverage and upstream dependency release limits are documented.
Update all 14 direct VUtil-family dependencies and the Rush lockfile.
Use published statistical APIs instead of the local development link.
Update dependency guidance and record isolated package verification.

Validation: consumer builds, TypeScript, 595 unit tests and 315 browser tests.
Official develop comparison is blocked by four baseline assertions.
The supplemental current run retains missing-baseline errors and the existing theme
difference.
Comment thread .github/workflows/statplots-test.yml Fixed
Comment thread packages/vchart-statplots/examples/gallery.js Fixed
Comment thread packages/vchart-statplots/scripts/cache-published-umd.mjs Fixed

@visactor-review-bot visactor-review-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review incomplete; the conclusions below cover only the inspected scope.

Found 1 issue that needs fixing; see the inline comment. Full browser rendering and remaining generated resources need follow-up review.

Comment thread packages/vchart-statplots/src/plots/shap-beeswarm/compile.ts Outdated

@skie1997 skie1997 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

基于 f8c13f0 的 review:确认 3 个 P2 问题,具体复现和建议见行内评论。三个问题均已使用本 PR 源码在 Chromium 中复现。临时源码测试环境下,vchart-statplots 的 38 组、669 个单测通过;未运行完整浏览器测试集。

Comment thread packages/vchart-statplots/src/plots/scatter/compile.ts Outdated
Comment thread packages/vchart-statplots/src/plots/feature-importance/compile.ts Outdated
Comment thread packages/vchart-statplots/src/plots/paired/compile.ts Outdated
@xile611
xile611 merged commit 7040330 into develop Oct 14, 2026
12 of 14 checks passed
@xile611
xile611 deleted the codex/vchart-statplots branch October 14, 2026 03:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants