LineCartesianLayer

Use LineCartesianLayerarrow-up-right to create line charts. Each line is associated with a LineCartesianLayer.Linearrow-up-right instance. 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 solid colors and ShaderProviderarrow-up-right 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.

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.

To create a LineCartesianLayer instance, use the XML attributes:

<style name="ChartStyle">
    <item name="layers">line</item>
    <!-- ... -->
</style>
<com.patrykandpatrick.vico.views.cartesian.CartesianChartView
    app:chartStyle="@style/ChartStyle"
    <!-- ... --> />

Alternatively, instantiate LineCartesianLayer via the constructor:

Transaction.lineSeries

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

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