Skip to main content
Version: 2.0.0-beta.1

Markers

CartesianMarkers highlight points on CartesianCharts. There are two types of CartesianMarker:

CartesianMarkers use CartesianMarker.Targets, which hold information on the highlighted points. Each CartesianLayer has its own implementation, giving us CandlestickCartesianLayerMarkerTarget, ColumnCartesianLayerMarkerTarget, and LineCartesianLayerMarkerTarget.

There are two ways of creating a CartesianMarker:

DefaultCartesianMarker

A common means of creating CartesianMarkers is DefaultCartesianMarker, which accepts three main components—a label, a point indicator, and a vertical line—and offers several customization options.

Create DefaultCartesianMarker instances via rememberDefaultCartesianMarker.

A DefaultCartesianMarker’s label text is created by its CartesianMarkerValueFormatter, which you can change via the valueFormatter parameter of rememberCartesianMarker.

A dedicated formatting contract is required here because CartesianMarkers can highlight multiple points at once. The general principle is the same as with CartesianValueFormatter, but the required information must first be retrieved from targets.

The default CartesianMarkerValueFormatter implementation is DefaultCartesianMarkerValueFormatter, which uses DecimalFormat to format y values. DefaultCartesianMarkerValueFormatter lets you provide a custom DecimalFormat instance and toggle the color-coding of y values. You can use a custom DecimalFormat instance not only to change how the y values themselves are formatted, but also to add prefixes and suffixes.

DefaultCartesianMarker is open for subclassing.

CartesianMarkerVisibilityListener

You can listen for visibility changes of standard CartesianMarkers via CartesianMarkerVisibilityListener.