@Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); if (savedInstanceState != null) { final int seriesCount = savedInstanceState.getInt("seriesCount"); for (int i = 0; i < seriesCount; i++) { final int seriesColor = savedInstanceState.getInt("seriesColor" + i); final ISciList<Double> xValues = savedInstanceState.getParcelable("xValues" + i); final ISciList<Double> yValues = savedInstanceState.getParcelable("yValues" + i); final IXyDataSeries<Double, Double> dataSeries = new XyDataSeries<>(Double.class, Double.class); final FastLineRenderableSeries renderableSeries = sciChartBuilder.newLineSeries() .withStrokeStyle(seriesColor) .withDataSeries(dataSeries).build(); dataSeries.append(xValues, yValues); surface.getRenderableSeries().add(renderableSeries); } } }
private void onAppendPoints(int count) { IXyDataSeries<Double, Double> dataSeries = new XyDataSeries<>(Double.class, Double.class); final FastLineRenderableSeries renderableSeries = sciChartBuilder.newLineSeries() .withStrokeStyle(ColorUtil.rgb(random.nextInt(255), random.nextInt(255), random.nextInt(255))) .withDataSeries(dataSeries).build(); Random biasRandom = new Random(); DoubleSeries randomWalkSeries = new RandomWalkGenerator(100) .setBias(biasRandom.nextDouble() / 100).getRandomWalkSeries(count); dataSeries.append(randomWalkSeries.xValues, randomWalkSeries.yValues); surface.getRenderableSeries().add(renderableSeries); surface.animateZoomExtents(500); }
@Override public void run() { final IAxis xBottomAxis = sciChartBuilder.newNumericAxis() .withVisibleRange(new DoubleRange(0d, 10d)) .withAutoRangeMode(AutoRange.Never) .withAxisTitle("Time (seconds)") .build(); final IAxis yRightAxis = sciChartBuilder.newNumericAxis() .withVisibleRange(new DoubleRange(-0.5d, 1.5d)) .withAxisTitle("Voltage (mV)") .build(); final IRenderableSeries rs1 = sciChartBuilder.newLineSeries() .withDataSeries(series0) .build(); final IRenderableSeries rs2 = sciChartBuilder.newLineSeries() .withDataSeries(series1) .build(); Collections.addAll(surface.getXAxes(), xBottomAxis); Collections.addAll(surface.getYAxes(), yRightAxis); Collections.addAll(surface.getRenderableSeries(), rs1, rs2); } });
@Override protected void initExample() { final NumericAxis xAxis = sciChartBuilder.newNumericAxis().withVisibleRange(xVisibleRange).withAutoRangeMode(AutoRange.Never).build(); final NumericAxis yAxis = sciChartBuilder.newNumericAxis().withGrowBy(0.1d, 0.1d).withAutoRangeMode(AutoRange.Always).build(); final IRenderableSeries rs1 = sciChartBuilder.newLineSeries().withDataSeries(ds1).withStrokeStyle(0xFF4083B7, 2f, true).build(); final IRenderableSeries rs2 = sciChartBuilder.newLineSeries().withDataSeries(ds2).withStrokeStyle(0xFFFFA500, 2f, true).build(); final IRenderableSeries rs3 = sciChartBuilder.newLineSeries().withDataSeries(ds3).withStrokeStyle(0xFFE13219, 2f, 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(), rs1, rs2, rs3); } }); schedule = scheduledExecutorService.scheduleWithFixedDelay(new Runnable() { @Override public void run() { if (!isRunning) { return; } UpdateSuspender.using(surface, insertRunnable); } }, 0, TIME_INTERVAL, TimeUnit.MILLISECONDS); }
private void initChart() { final IAxis xAxis = sciChartBuilder.newNumericAxis().withAutoRangeMode(AutoRange.Always).build(); final IAxis yAxis = sciChartBuilder.newNumericAxis().withAutoRangeMode(AutoRange.Always).build(); final IRenderableSeries rs1 = sciChartBuilder.newLineSeries().withStrokeStyle(0xFF4083B7).withDataSeries(new XyDataSeries<>(Integer.class, Float.class)).build(); final IRenderableSeries rs2 = sciChartBuilder.newLineSeries().withStrokeStyle(0xFFFFA500).withDataSeries(new XyDataSeries<>(Integer.class, Float.class)).build(); final IRenderableSeries rs3 = sciChartBuilder.newLineSeries().withStrokeStyle(0xFFE13219).withDataSeries(new XyDataSeries<>(Integer.class, Float.class)).build(); textView = new TextView(getActivity()); textView.setPadding(20, 20, 20, 20); final CustomAnnotation annotation = sciChartBuilder.newCustomAnnotation() .withCoordinateMode(AnnotationCoordinateMode.Relative) .withContent(textView) .withZIndex(-1) .withX1(0) .withY1(0) .build(); UpdateSuspender.using(surface, new Runnable() { @Override public void run() { Collections.addAll(surface.getXAxes(), xAxis); Collections.addAll(surface.getYAxes(), yAxis); Collections.addAll(surface.getRenderableSeries(), rs1, rs2, rs3); Collections.addAll(surface.getChartModifiers(), sciChartBuilder.newModifierGroupWithDefaultModifiers().build()); Collections.addAll(surface.getAnnotations(), annotation); } }); }
public RsiPaneModel(SciChartBuilder builder, PriceSeries prices) { super(builder, RSI, "0.0", false); final XyDataSeries<Date, Double> rsiSeries = builder.newXyDataSeries(Date.class, Double.class).withSeriesName("RSI").build(); rsiSeries.append(prices.getDateData(), MovingAverage.rsi(prices, 14)); addRenderableSeries(builder.newLineSeries().withDataSeries(rsiSeries).withYAxisId(RSI).build()); Collections.addAll(annotations, builder.newAxisMarkerAnnotation().withY1(rsiSeries.getYValues().get(rsiSeries.getCount() - 1)).withYAxisId(RSI).build()); } }
@Override public void run() { final IAxis xBottomAxis = sciChartBuilder.newNumericAxis() .withAutoRangeMode(AutoRange.Never) .withAxisTitle("Time (ms)") .withVisibleRange(new DoubleRange(2.5, 4.5)) .build(); final IAxis yRightAxis = sciChartBuilder.newNumericAxis() .withAutoRangeMode(AutoRange.Never) .withAxisTitle("Voltage (mV)") .withVisibleRange(new DoubleRange(-12.5, 12.5)) .build(); rSeries = sciChartBuilder.newLineSeries() .withDataSeries(dataSeries1) .withXAxisId(xBottomAxis.getAxisId()) .withYAxisId(yRightAxis.getAxisId()) .build(); Collections.addAll(surface.getXAxes(), xBottomAxis); Collections.addAll(surface.getYAxes(), yRightAxis); Collections.addAll(surface.getRenderableSeries(), rSeries); Collections.addAll(surface.getChartModifiers(), sciChartBuilder.newModifierGroupWithDefaultModifiers().build()); } });
public RsiPaneModel(SciChartBuilder builder, PriceSeries prices) { super(builder, RSI, "0.0", false); final XyDataSeries<Date, Double> rsiSeries = builder.newXyDataSeries(Date.class, Double.class).withSeriesName("RSI").build(); rsiSeries.append(prices.getDateData(), MovingAverage.rsi(prices, 14)); addRenderableSeries(builder.newLineSeries().withDataSeries(rsiSeries).withStrokeStyle(0xFFC6E6FF, 1f).withYAxisId(RSI).build()); Collections.addAll(annotations, builder.newAxisMarkerAnnotation().withY1(rsiSeries.getYValues().get(rsiSeries.getCount() - 1)).withYAxisId(RSI).build()); } }
@Override public void run() { Collections.addAll(surface.getXAxes(), xAxis); Collections.addAll(surface.getYAxes(), leftAxis, rightAxis); surface.getChartModifiers().add(seriesSelectionModifier); for (int i = 0; i < SERIES_COUNT; i++) { final AxisAlignment alignment = i % 2 == 0 ? AxisAlignment.Left : AxisAlignment.Right; final IDataSeries ds = generateDataSeries(alignment, i); final FastLineRenderableSeries rSeries = sciChartBuilder.newLineSeries() .withStrokeStyle(initialColor, 1f, true) .withDataSeries(ds) .withYAxisId(alignment.name()) .build(); surface.getRenderableSeries().add(rSeries); final int red = ColorUtil.red(initialColor); final int green = ColorUtil.green(initialColor); final int blue = ColorUtil.blue(initialColor); int newR = red == 255 ? 255 : red + 5; int newB = blue == 0 ? 0 : blue - 2; initialColor = ColorUtil.rgb(newR, green, newB); sciChartBuilder.newAnimator(rSeries).withSweepTransformation().withInterpolator(new DecelerateInterpolator()).withDuration(2000).withStartDelay(350).start(); } } });
private IRenderableSeries changeSeriesType(String param, IRenderableSeries initSeries) { if (getResources().getStringArray(R.array.series_types)[0].equals(param)) { return sciChartBuilder.newLineSeries() .withDataSeries(initSeries.getDataSeries()) .withStrokeStyle(initSeries.getStrokeStyle()) .withResamplingMode(initSeries.getResamplingMode()) .build(); } else if (getResources().getStringArray(R.array.series_types)[1].equals(param)) { return sciChartBuilder.newMountainSeries() .withDataSeries(initSeries.getDataSeries()) .withStrokeStyle(initSeries.getStrokeStyle()) .withResamplingMode(initSeries.getResamplingMode()) .withAreaFillColor(initSeries.getStrokeStyle().getColor()) .build(); } else if (getResources().getStringArray(R.array.series_types)[2].equals(param)) { CrossPointMarker pointMarker = new CrossPointMarker(); pointMarker.setSize(20, 20); pointMarker.setStrokeStyle(initSeries.getStrokeStyle()); return sciChartBuilder.newScatterSeries() .withDataSeries(initSeries.getDataSeries()) .withStrokeStyle(initSeries.getStrokeStyle()) .withResamplingMode(initSeries.getResamplingMode()) .withPointMarker(pointMarker) .build(); } return null; }
public EegChannelViewHolder(View itemView) { super(itemView); ButterKnife.bind(this, itemView); final NumericAxis xAxis = sciChartBuilder.newNumericAxis() .withGrowBy(new DoubleRange(0.05d, 0.05d)) .withAutoRangeMode(AutoRange.Always) .withDrawMajorBands(false) .withDrawLabels(false) .withDrawMinorTicks(false) .withDrawMajorTicks(false) .withDrawMajorGridLines(false) .withDrawMinorGridLines(false) .build(); final NumericAxis yAxis = sciChartBuilder.newNumericAxis() .withGrowBy(new DoubleRange(0.1d, 0.1d)) .withAutoRangeMode(AutoRange.Always) .withDrawMajorBands(false) .withDrawLabels(false) .withDrawMinorTicks(false) .withDrawMajorTicks(false) .withDrawMajorGridLines(false) .withDrawMinorGridLines(false) .build(); final IRenderableSeries rs = sciChartBuilder.newLineSeries().build(); Collections.addAll(chart.getXAxes(), xAxis); Collections.addAll(chart.getYAxes(), yAxis); Collections.addAll(chart.getRenderableSeries(), rs); }
private void initChart(final SciChartSurface surface) { final IAxis xAxis = sciChartBuilder.newNumericAxis().withGrowBy(0.1d, 0.1d).withVisibleRange(sharedXRange).build(); final IAxis yAxis = sciChartBuilder.newNumericAxis().withGrowBy(0.1d, 0.1d).withVisibleRange(sharedYRange).build(); final FastLineRenderableSeries line = sciChartBuilder.newLineSeries().withDataSeries(createDataSeries()).withStrokeStyle(ColorUtil.Green, 1f, 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(), line); Collections.addAll(surface.getChartModifiers(), sciChartBuilder.newModifierGroup() .withMotionEventsGroup("ModifiersSharedEventsGroup").withReceiveHandledEvents(true) .withZoomExtentsModifier().build() .withPinchZoomModifier().build() .withRolloverModifier().withReceiveHandledEvents(true).build() .withXAxisDragModifier().withReceiveHandledEvents(true).build() .withYAxisDragModifier().withReceiveHandledEvents(true).build() .build()); surface.zoomExtents(); sciChartBuilder.newAnimator(line).withSweepTransformation().withInterpolator(new DecelerateInterpolator()).withDuration(3000).withStartDelay(350).start(); } }); }
@Override protected void initExample() { final IAxis xAxis = sciChartBuilder.newNumericAxis().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(), new TooltipModifier()); sciChartBuilder.newAnimator(lineRs1).withSweepTransformation().withInterpolator(new DecelerateInterpolator()).withDuration(3000).withStartDelay(350).start(); sciChartBuilder.newAnimator(lineRs2).withSweepTransformation().withInterpolator(new DecelerateInterpolator()).withDuration(3000).withStartDelay(350).start(); } }); }
@Override protected void initExample() { final IAxis xAxis = sciChartBuilder.newNumericAxis().withGrowBy(0.1d, 0.1d).withVisibleRange(1.1, 2.7).build(); final IAxis yAxis = sciChartBuilder.newNumericAxis().withGrowBy(0.1d, 0.1d).build(); final DoubleSeries fourierSeries = DataManager.getInstance().getFourierSeries(1.0, 0.1, 5000); final IXyDataSeries<Double, Double> dataSeries = sciChartBuilder.newXyDataSeries(Double.class, Double.class).build(); dataSeries.append(fourierSeries.xValues, fourierSeries.yValues); final FastLineRenderableSeries rSeries = sciChartBuilder.newLineSeries().withDataSeries(dataSeries).withStrokeStyle(0xFF279B27, 1f, 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(), rSeries); Collections.addAll(surface.getChartModifiers(), sciChartBuilder.newModifierGroupWithDefaultModifiers().build()); sciChartBuilder.newAnimator(rSeries).withSweepTransformation().withInterpolator(new DecelerateInterpolator()).withDuration(3000).withStartDelay(350).start(); } }); } }
@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(); } }); }
@Override protected void initExample() { final IAxis xAxis = sciChartBuilder.newNumericAxis().build(); final IAxis yAxis = sciChartBuilder.newNumericAxis().withGrowBy(new DoubleRange(0.1d, 0.1d)).build(); DoubleSeries data = new RandomWalkGenerator(0).setBias(0.0001).getRandomWalkSeries(10000); final IXyDataSeries<Double, Double> dataSeries = sciChartBuilder.newXyDataSeries(Double.class, Double.class).build(); dataSeries.append(data.xValues, data.yValues); final FastLineRenderableSeries rSeries = sciChartBuilder.newLineSeries().withDataSeries(dataSeries).withStrokeStyle(ColorUtil.argb(255, 9, 68, 27), 1, true).build(); rubberBandXyZoomModifier = new RubberBandXyZoomModifier(); rubberBandXyZoomModifier.setIsXAxisOnly(true); rubberBandXyZoomModifier.setReceiveHandledEvents(true); UpdateSuspender.using(surface, new Runnable() { @Override public void run() { Collections.addAll(surface.getXAxes(), xAxis); Collections.addAll(surface.getYAxes(), yAxis); Collections.addAll(surface.getRenderableSeries(), rSeries); Collections.addAll(surface.getChartModifiers(), sciChartBuilder.newModifierGroup() .withZoomExtentsModifier().build() .withModifier(rubberBandXyZoomModifier) .build()); sciChartBuilder.newAnimator(rSeries).withSweepTransformation().withInterpolator(new DecelerateInterpolator()).withDuration(2000).withStartDelay(350).start(); } }); }
@Override protected void initExample() { final IAxis xAxis = sciChartBuilder.newNumericAxis().withGrowBy(0.1, 0.1).withDrawMajorBands(true).withVisibleRange(1, 1.25).build(); final IAxis yAxis = sciChartBuilder.newNumericAxis().withGrowBy(0.5, 0.5).withDrawMajorBands(true).withVisibleRange(2.3, 3.3).build(); final DoubleSeries fourierSeries = DataManager.getInstance().getFourierSeries(1.0, 0.1, 5000); final XyDataSeries<Double, Double> dataSeries = sciChartBuilder.newXyDataSeries(Double.class, Double.class).build(); dataSeries.append(fourierSeries.xValues, fourierSeries.yValues); final FastLineRenderableSeries rSeries = sciChartBuilder.newLineSeries() .withDataSeries(dataSeries) .withStrokeStyle(0xFF99EE99, 1f, true) .withIsDigitalLine(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(), rSeries); Collections.addAll(surface.getChartModifiers(), sciChartBuilder.newModifierGroupWithDefaultModifiers().build()); sciChartBuilder.newAnimator(rSeries).withWaveTransformation().withInterpolator(new DecelerateInterpolator()).withDuration(3000).withStartDelay(350).start(); } }); } }
public PricePaneModel(SciChartBuilder builder, PriceSeries prices) { super(builder, PRICES, "$0.0000", true); // Add the main OHLC chart final OhlcDataSeries<Date, Double> stockPrices = builder.newOhlcDataSeries(Date.class, Double.class).withSeriesName("OHLC").build(); stockPrices.append(prices.getDateData(), prices.getOpenData(), prices.getHighData(), prices.getLowData(), prices.getCloseData()); addRenderableSeries(builder.newCandlestickSeries().withDataSeries(stockPrices).withYAxisId(PRICES).build()); final XyDataSeries<Date, Double> maLow = builder.newXyDataSeries(Date.class, Double.class).withSeriesName("Low Line").build(); maLow.append(prices.getDateData(), MovingAverage.movingAverage(prices.getCloseData(), 50)); addRenderableSeries(builder.newLineSeries().withDataSeries(maLow).withStrokeStyle(0xFFFF3333, 2f).withYAxisId(PRICES).build()); final XyDataSeries<Date, Double> maHigh = builder.newXyDataSeries(Date.class, Double.class).withSeriesName("High Line").build(); maHigh.append(prices.getDateData(), MovingAverage.movingAverage(prices.getCloseData(), 200)); addRenderableSeries(builder.newLineSeries().withDataSeries(maHigh).withStrokeStyle(0xFF33DD33, 2f).withYAxisId(PRICES).build()); Collections.addAll(annotations, builder.newAxisMarkerAnnotation().withY1(stockPrices.getYValues().get(stockPrices.getCount() - 1)).withBackgroundColor(0xFFFF3333).withYAxisId(PRICES).build(), builder.newAxisMarkerAnnotation().withY1(maLow.getYValues().get(maLow.getCount() - 1)).withBackgroundColor(0xFFFF3333).withYAxisId(PRICES).build(), builder.newAxisMarkerAnnotation().withY1(maHigh.getYValues().get(maHigh.getCount() - 1)).withBackgroundColor(0xFF33DD33).withYAxisId(PRICES).build()); } }
public PricePaneModel(SciChartBuilder builder, PriceSeries prices) { super(builder, PRICES, "$0.0000", true); // Add the main OHLC chart final OhlcDataSeries<Date, Double> stockPrices = builder.newOhlcDataSeries(Date.class, Double.class).withSeriesName("EUR/USD").build(); stockPrices.append(prices.getDateData(), prices.getOpenData(), prices.getHighData(), prices.getLowData(), prices.getCloseData()); addRenderableSeries(builder.newCandlestickSeries().withDataSeries(stockPrices).withYAxisId(PRICES).build()); final XyDataSeries<Date, Double> maLow = builder.newXyDataSeries(Date.class, Double.class).withSeriesName("Low Line").build(); maLow.append(prices.getDateData(), MovingAverage.movingAverage(prices.getCloseData(), 50)); addRenderableSeries(builder.newLineSeries().withDataSeries(maLow).withStrokeStyle(0xFFFF3333, 1f).withYAxisId(PRICES).build()); final XyDataSeries<Date, Double> maHigh = builder.newXyDataSeries(Date.class, Double.class).withSeriesName("High Line").build(); maHigh.append(prices.getDateData(), MovingAverage.movingAverage(prices.getCloseData(), 200)); addRenderableSeries(builder.newLineSeries().withDataSeries(maHigh).withStrokeStyle(0xFF33DD33, 1f).withYAxisId(PRICES).build()); Collections.addAll(annotations, builder.newAxisMarkerAnnotation().withY1(stockPrices.getYValues().get(stockPrices.getCount() - 1)).withBackgroundColor(0xFFFF3333).withYAxisId(PRICES).build(), builder.newAxisMarkerAnnotation().withY1(maLow.getYValues().get(maLow.getCount() - 1)).withBackgroundColor(0xFFFF3333).withYAxisId(PRICES).build(), builder.newAxisMarkerAnnotation().withY1(maHigh.getYValues().get(maHigh.getCount() - 1)).withBackgroundColor(0xFF33DD33).withYAxisId(PRICES).build()); } }
@Override protected void initExample() { final IAxis xAxis = sciChartBuilder.newNumericAxis().withAxisAlignment(AxisAlignment.Top).withMajorTickLineStyle(0xFFFFFFFF, 2f, true).withTextFormatting("0.00").withDrawMinorTicks(false).withIsCenterAxis(true).withGrowBy(0.1, 0.1).build(); final IAxis yAxis = sciChartBuilder.newNumericAxis().withAxisAlignment(AxisAlignment.Left).withMajorTickLineStyle(0xFFFFFFFF, 2f, true).withTextFormatting("0.00").withDrawMinorTicks(false).withIsCenterAxis(true).withGrowBy(0.1, 0.1).build(); final DoubleSeries butterflyCurve = DataManager.getInstance().getButterflyCurve(20000); final XyDataSeries<Double, Double> dataSeries = sciChartBuilder.newXyDataSeries(Double.class, Double.class).withAcceptsUnsortedData().build(); dataSeries.append(butterflyCurve.xValues, butterflyCurve.yValues); final FastLineRenderableSeries rSeries = sciChartBuilder.newLineSeries().withDataSeries(dataSeries).build(); UpdateSuspender.using(surface, new Runnable() { @Override public void run() { surface.setLayoutManager(new CenterLayoutManager(xAxis, yAxis)); Collections.addAll(surface.getXAxes(), xAxis); Collections.addAll(surface.getYAxes(), yAxis); Collections.addAll(surface.getRenderableSeries(), rSeries); Collections.addAll(surface.getChartModifiers(), sciChartBuilder.newModifierGroupWithDefaultModifiers().build()); sciChartBuilder.newAnimator(rSeries).withSweepTransformation().withDuration(20000).withStartDelay(350).start(); } }); }