feat(visualization): add performance & large dataset handling (#36) - #35
Conversation
|
ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing |
Reviewer's GuideImplements Phase 6.10 visualization performance work by adding deterministic downsampling/aggregation helpers, capping rendered points/cells across scientific charts, memoizing expensive derivations, and documenting the performance strategy, while keeping underlying data and accessibility behavior unchanged. Sequence diagram for optimized distribution chart grouping and statisticssequenceDiagram
participant Component as DistributionChart
participant Hook as useDistributionChart
participant Dist as distribution
participant Stats as statistics
Component->>Hook: useDistributionChart(datasetId)
Hook->>Hook: distributionGroups(data)
Hook->>Dist: valuesByGroup(data)
Dist-->>Hook: groupedValues
loop for each group in groups
Hook->>Stats: summarize(values)
Stats-->>Hook: SummaryStatistics
Hook->>Stats: boxPlotWhiskers(values)
Stats-->>Hook: Whiskers
end
Hook-->>Component: {groups, statistics}
Component->>Dist: valuesForGroup(dataset, group)
Dist-->>Component: groupValues
Component->>Component: decimateItems(groupValues, MAX_SCATTER_POINTS_PER_GROUP)
Component-->>Component: bounded_scatter_values
Component-->>Component: render boxplot and jittered points
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Important Review available on request
Reviews should be triggered manually for repositories with fewer than 10 stars. Select Trigger review above or comment ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- In the heatmap,
HeatmapGrid, hover tooltips, andHeatmapDetailnow operate ongridData(possibly aggregated), which contradicts the stated goal that the original dataset remains the source of truth for selection and tooltips; consider deriving detail/tooltips fromresult.dataseteven when rendering an aggregated matrix. - In
GroupBoxfor the distribution chart, the scatter decimation keeps all outliers and then samples the rest, but if the number of outliers exceedsMAX_SCATTER_POINTS_PER_GROUPthe total rendered points for that group can still exceed the cap; consider enforcing the limit across outliers and non-outliers to keep per-group scatter strictly bounded.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- In the heatmap, `HeatmapGrid`, hover tooltips, and `HeatmapDetail` now operate on `gridData` (possibly aggregated), which contradicts the stated goal that the original dataset remains the source of truth for selection and tooltips; consider deriving detail/tooltips from `result.dataset` even when rendering an aggregated matrix.
- In `GroupBox` for the distribution chart, the scatter decimation keeps all outliers and then samples the rest, but if the number of outliers exceeds `MAX_SCATTER_POINTS_PER_GROUP` the total rendered points for that group can still exceed the cap; consider enforcing the limit across outliers and non-outliers to keep per-group scatter strictly bounded.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
Summary
Implements Phase 6.10 — Visualization Performance & Large Dataset Handling.
What changed
Validation
Constraints
Phase
Phase 6.10 — Visualization Performance & Large Dataset Handling
Follow-up
After this PR is merged, the next milestone will be handled separately.
Summary by Sourcery
Improve visualization performance and large dataset handling across scientific charts and network viewer while preserving correctness and accessibility.
New Features:
Enhancements:
Documentation:
Tests: