Add EffectScatter chart support#102
Merged
Merged
Conversation
Adds the effectScatter series (type: "effectScatter") — a scatter chart
where each data point pulses with a configurable ripple animation. The
canonical use case is highlighting hotspots on a map or any 2D plot.
The new public API:
- EffectScatter (top-level CartesianCoordChart wrapper)
- EffectScatterSeries, EffectScatterDataItem, EffectScatterEmphasis
- RippleEffect (period, scale, brushType, color, number)
Mirrors the existing Scatter structure so all coordinate systems work
(cartesian2d, polar, geo, calendar, single). Adds the effectScatter-
specific fields on top: rippleEffect, showEffectOn ("render"|"emphasis"),
effectType.
Tests (22 new, all passing):
- BasicEffectScatterTest (snapshot)
- EffectScatterSeriesTest (18 unit tests covering every setter overload,
ripple nesting, null-omission, axis indices, geo/polar coord systems)
- RenderEffectScatterByChartTest (Engine smoke test)
- EffectScatterDemo (writes /tmp/effect-scatter-demo.html for visual
inspection — opt-in via mvn test -Dtest=EffectScatterDemo)
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Adds scripts/config JSON definitions for the EffectScatter series following the established pattern, so EffectScatterSeries, RippleEffect, EffectScatterDataItem, EffectScatterEmphasis and the corresponding origin interfaces are produced by scripts/config-to-java.py rather than hand-written. Regenerated output matches the previous hand-written code; only field/method order shifts to put inherited members ahead of own members, matching what the generator emits for every other chart. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
incandescentxxc
approved these changes
May 13, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Scatterstructure (sameCartesianCoordChartbase, same coordinate-system mixins: cartesian / polar / geo / calendar / single).RippleEffect(period, scale, brushType, color, number), plusshowEffectOn("render"/"emphasis") andeffectTypeon the series.Public API added
EffectScattercharts.effectScatter.EffectScatterSeries,EffectScatterDataItem,EffectScatterEmphasis,RippleEffectorigin.chart.effectScatter.EffectScatterSeriesOption,EffectScatterStateOption,EffectScatterEmphasisOption,EffectScatterDataItemOption,RippleEffectOptionHow to use
For a richer example with named data items, tooltip, and dark background, see
src/test/java/org/icepear/echarts/demo/EffectScatterDemo.java— runmvn test -Dtest=EffectScatterDemothenopen /tmp/effect-scatter-demo.html.Tests added (22 new, all passing locally)
simple/effectScatter/BasicEffectScatterTest— snapshot testcharts/effectScatter/EffectScatterSeriesTest— 18 unit tests covering every setter overload (symbolSize/symbolOffset Number/String, all data-shape overloads), ripple nesting, null-omission semantics, axis-index/coord-system fields, emphasis flagsrender/simple/RenderEffectScatterByChartTest— Engine smoke test (json + html paths)demo/EffectScatterDemo— opt-in HTML writer for visual inspectionTest plan
mvn test -Dtest=BasicEffectScatterTest— 1/1 passmvn test -Dtest=EffectScatterSeriesTest— 18/18 passmvn test -Dtest=RenderEffectScatterByChartTest— 2/2 passmvn test -Dtest=EffectScatterDemothenopen /tmp/effect-scatter-demo.html— pulses render correctly in browsermvn test(full suite) — all 21 new default-suite tests pass; only the 3 pre-existing polar/float-precision failures remain on masterCleanShot.2026-05-10.at.20.05.47.mp4