LineCartesianLayer

Use LineCartesianLayerarrow-up-right to create line charts. Instantiate it via rememberLineCartesianLayerarrow-up-right.

Each line is associated with a LineCartesianLayer.Linearrow-up-right instance. Create these via LineCartesianLayer.rememberLinearrow-up-right. These are provided by LineCartesianLayer.LineProviderarrow-up-right. A base implementation of this interface can be instantiated via LineCartesianLayer.LineProvider.seriesarrow-up-right. You can customize line fills, backgrounds, shapes, and other properties. You can also add data labels and points.

Line strokes are customized via LineCartesianLayer.LineStrokearrow-up-right, which has two implementations:

Line fills are customized via LineCartesianLayer.LineFillarrow-up-right, which has two factory functions:

Area fills, which are optional, are customized via LineCartesianLayer.AreaFillarrow-up-right. This has similar factory functions to LineCartesianLayer.LineFill:

These cover most use cases. You can use both colors and brushes, 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.

To add points, use LineCartesianLayer.PointProviderarrow-up-right. LineCartesianLayer.PointProvider.singlearrow-up-right 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.

Transaction.lineSeries

Line layers use LineCartesianLayerModelarrow-up-right instances. When using CartesianChartModelProducerarrow-up-right, add them via lineSeriesarrow-up-right:

cartesianChartModelProducer.runTransaction {
    lineSeries {
        series(1, 8, 3, 7)
        series(y = listOf(6, 1, 9, 3))
        series(x = listOf(1, 2, 3, 4), y = listOf(2, 5, 3, 4))
    }
    // ...
}

Each seriesarrow-up-right 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 CartesianChartModelarrow-up-right instance directly, you can add a line-layer model by using buildarrow-up-right. This function gives you access to the same DSL that lineSeries does.

Sample charts

Last updated