@Override protected void initExample() { final IAxis xAxis = sciChartBuilder.newNumericAxis().withAxisInfoProvider(new CustomAxisInfoProvider()).build(); final IAxis yAxis = sciChartBuilder.newNumericAxis().build(); final RandomWalkGenerator randomWalkGenerator = new RandomWalkGenerator(); final DoubleSeries data1 = randomWalkGenerator.getRandomWalkSeries(POINTS_COUNT); randomWalkGenerator.reset(); final DoubleSeries data2 = randomWalkGenerator.getRandomWalkSeries(POINTS_COUNT); final XyDataSeries<Double, Double> ds1 = sciChartBuilder.newXyDataSeries(Double.class, Double.class).withSeriesName("Series #1").build(); final XyDataSeries<Double, Double> ds2 = sciChartBuilder.newXyDataSeries(Double.class, Double.class).withSeriesName("Series #2").build(); ds1.append(data1.xValues, data1.yValues); ds2.append(data2.xValues, data2.yValues); final FastLineRenderableSeries lineRs1 = sciChartBuilder.newLineSeries().withDataSeries(ds1).withSeriesInfoProvider(new FirstCustomSeriesInfoProvider()).withStrokeStyle(0xff6495ed, 2, true).build(); final FastLineRenderableSeries lineRs2 = sciChartBuilder.newLineSeries().withDataSeries(ds2).withSeriesInfoProvider(new SecondCustomSeriesInfoProvider()).withStrokeStyle(0xffe2460c, 2, true).build(); UpdateSuspender.using(surface, new Runnable() { @Override public void run() { Collections.addAll(surface.getXAxes(), xAxis); Collections.addAll(surface.getYAxes(), yAxis); Collections.addAll(surface.getRenderableSeries(), lineRs1, lineRs2); Collections.addAll(surface.getChartModifiers(), sciChartBuilder.newModifierGroup().withRolloverModifier().build().build()); sciChartBuilder.newAnimator(lineRs1).withSweepTransformation().withInterpolator(new DecelerateInterpolator()).withDuration(3000).withStartDelay(350).start(); sciChartBuilder.newAnimator(lineRs2).withSweepTransformation().withInterpolator(new DecelerateInterpolator()).withDuration(3000).withStartDelay(350).start(); } }); }