LineCartesianLayer

Use LineCartesianLayer to create line charts. Each line is associated with a LineCartesianLayer.Line instance. These are provided by LineCartesianLayer.LineProvider. A base implementation of this interface can be instantiated via LineCartesianLayer.LineProvider.series. You can customize line fills, backgrounds, shapes, and other properties. You can also add data labels, points, and interpolation.

LineStroke

Line strokes are customized via LineCartesianLayer.LineStroke, which has two implementations:

LineFill and AreaFill

Line fills are customized via LineCartesianLayer.LineFill, which has two factory functions:

Area fills, which are optional, are customized via LineCartesianLayer.AreaFill. This has similar factory functions to LineCartesianLayer.LineFill:

These cover most use cases. You can use both solid colors and ShaderProvider instances, and you can apply split styling—enabling you to create a line that’s green for positive values and red for negative values, for instance. You can, however, also create your own LineCartesianLayer.LineFill and LineCartesianLayer.AreaFill implementations.

LineCartesianLayer.LineFill.colorScale and LineCartesianLayer.AreaFill.colorScale provide another option. These APIs let you define multi-stop styling against the value scale instead of splitting at a single threshold.

Interpolator

Use LineCartesianLayer.Interpolator to define how a line passes through its points. Three built-in implementations are available:

The first uses straight line segments. The second uses cubic Bézier curves. The third passes through all points and keeps collinear segments straight.

PointProvider

To add points, use LineCartesianLayer.PointProvider. LineCartesianLayer.PointProvider.single instantiates a base implementation that adds a point for each entry and uses a shared point style. Once again, custom implementations can be created. A common use case for this is styling points individually based on their y-values.

Creation

To create a line-layer instance, use the XML attributes:

Alternatively, instantiate LineCartesianLayer via the constructor:

Transaction.lineSeries

Line layers use LineCartesianLayerModel instances. When using CartesianChartModelProducer, add them via lineSeries:

Each series invocation adds a series to the LineCartesianLayerModel instance. Above, three series are added. series has three overloads (each of which accepts all Number subtypes):

  • a vararg overload that takes y-values and uses their indices as the x-values

  • an overload that takes a collection of y-values and uses their indices as the x-values

  • an overload that takes a collection of x-values and a collection of y-values of the same size

Manual LineCartesianLayerModel creation

When creating a CartesianChartModel instance directly, you can add a line-layer model by using build. This function gives you access to the same DSL that lineSeries does.

Sample charts

Last updated