Search Results for

    Show / Hide Table of Contents

    Chart Modifier APIs

    Within the SciChart SDK, ChartModifiers are the classes which can be added to a chart to give it a certain behaviour. For instance, all zooming, panning operations, tooltips, legends and even selection of points or lines are handled by ChartModifierBase derived classes in the SciChart codebase.

    There are many different ChartModifiers provided by SciChart and each one deserves an article by itself! This article is concerned with simply giving an overview of the modifiers and where you can find the examples in our SciChart Android Examples Suite which demonstrate them.

    There are also several individual articles on the ChartModifier's and how to configure them in the SciChart Android. Those could be grouped like the following:

    • Zoom and Pan Modifiers
    • Interactivity Modifiers
    • Miscellaneous Modifiers
    • Custom Modifiers

    Zoom and Pan Modifiers

    The following modifiers can be used if you want to add scrolling or zooming behavior to a chart:

    Modifier Name Description
    ZoomExtentsModifier Resets the zoom to the data extents via double-tapping. Available almost everywhere, e.g. see the Sync Multi Chart example.
    PinchZoomModifier Zooms a chart in and out via the pinch and spread gestures correspondingly. Available almost everywhere, e.g. see the Multiple X-Axes example.
    ZoomPanModifier Pans the chart in X, Y or both directions with inertia via finger sliding. Available almost everywhere, e,g. see the Multiple X-Axes example.
    RubberBandXyZoomModifier Zooms a chart via draggin rectangle on a chart. Available almost everywhere, e.g. see the Drag Area to Zoom example.
    XAxisDragModifier Scales or pans an X Axis via finger drag. See Drag Axis to Scale a Chart example.
    YAxisDragModifier Scales or pans an Y Axis via finger drag. See Drag Axis to Scale a Chart example.

    Interactivity Modifiers

    These modifiers allow to interact with chart series or inspect them:

    Modifier Name Description
    SeriesSelectionModifier Provides selection of a series via tapping on it. See the Series Selection example.
    TooltipModifier Provides a tooltip for the nearest point on a series under the finger. See the Using TooltipModifier example.
    RolloverModifier Provides a vertical slice cursor with tooltips and markers rolling over a series. See the Using RolloverModifier example.
    CursorModifier Provides a crosshairs with a tooltip and axis labels. See Using CursorModifier example.

    Miscellaneous Modifiers

    Modifiers below are used as helpers and can be a useful addition to a chart:

    Modifier Name Description
    ModifierGroup Can be used to group chart modifiers together. This can useful in multi-chart scenarAndroid, to unite ModifierGroups into one EventGroup of modifiers. If an Event occurs on a chart, it will be propagated to modifiers from other charts that are in the same EventGroup. See the Multi-Pane Stock Chart example.
    LegendModifier Allows to creates and configure a Legend for a chart. See the Legend Chart example.
    SeriesValueModifier A custom ChartModifier which places an SeriesValueModifier.SeriesValueMarkerAnnotation on the YAxis for each RenderableSeries in the chart, showing the current IRenderableSeries latest Y-value. E.g. for each series, place one axis-marker with the latest Y-value of the series. See the SeriesValueModifier Chart example.
    Note

    To learn more about ChartModifiers API, please read the Common ChartModifiers Features section. To find out more about a specific ChartModifier, please refer to a corresponding article about this Modifier type.

    Adding a Chart Modifier

    All 2D Chart Modifiers are inherited from ChartModifierBase, conforms to the IChartModifier and are added to the ChartModifierCollection which is stored in chartModifiers property. Please see the code below, to see how to add PinchZoomModifier to your SciChartSurface:

    • Java
    • Java with Builders API
    • Kotlin
    // Assume a surface has been created and configured somewhere
    surface.getChartModifiers().add(new PinchZoomModifier());
    
    // Assume a surface has been created and configured somewhere
    surface.getChartModifiers().add(
            sciChartBuilder.newModifierGroup()
                    .withPinchZoomModifier()
                    .build()
                    .build()
    );
    
    // Assume a surface has been created and configured somewhere
    surface.chartModifiers.add(PinchZoomModifier())
    

    Common Chart Modifier Features

    As mentioned above - all the ChartModifiers provided by SciChart conforms to the IChartModifier protocol and derive from the ChartModifierBase class. These provide a powerful API which gives the full access to internals of a chart, axes, series, annotations. It is a must that Custom Modifiers implement IChartModifier, and hence we recommend inheriting ChartModifierBase in such cases as well to get some base implementation for free.

    Please see the list of common features below:

    Feature Description
    getParentSurface() Provides the ISciChartSurface which the modifier is attached to. See the isAttached() method below.
    getModifierSurface() Returns the ModifierSurface from the parental SciChartSurface. It is used to place Views like tooltips, etc. onto it.
    isAttached() Value which indicates whether a modifier is attached to a SciChartSurface or not. If it is - getParentSurface() method will return the corresponding instance of SciChartSurface.
    setIsEnabled(boolean isEnabled) Allows to specify if a modifier should be available for interaction or not.
    setReceiveHandledEvents(boolean receiveHandledEvents) Allows to specify whether a modifier should receive events handled by another modifier.

    ModifierGroup Features

    The ModifierGroup allows grouping of modifiers. This can be useful if modifiers create a logical group within which they are handled together. For example, all modifiers inside a ModifierGroup can be enabled/disabled together via the setIsEnabled(boolean isEnabled) method on the ModifierGroup itself.

    Also, this is useful in multi-chart scenarios. Several ModifierGroups can be united to share events between charts. This can be done by setMotionEventGroup(String eventGroup) method to be the same for ModifierGroups which belong to different SciChartSurfaces.

    Feature Description
    setMotionEventGroup(String eventGroup) Allows to specify which EventGroup this modifier goes in. It is used to share events between modifiers that belong to different surfaces.
    getEventsSource() Returns the ModifierSurface which is the source of the events.
    setChildModifiers(ChartModifierCollection childModifiers) Assigns a collection of modifiers to a ModifierGroup. Also a collection can be passed into the class constructor during creation.
    Back to top © 2011-2025 SciChart. All rights reserved. | sitemap.xml