Easily create multiplatform charts

charts.kt is a multiplatform comprehensive library that allows you to create responsive charts within a few lines of code for your Android, desktop or web application.

Make the most of your application

Use charts.kt to build a complete application: bind your datasources, synchronize your charts and control them from your app.

Customize your charts

charts.kt offers several themes for your needs and each component is fully and easily customizable.

Be productive

Based on Kotlin, charts.kt is statically typed so your code editor can helps with completion, allowing you to create your charts in a few minutes.

why charts.kt

Need some charts for your Kotlin project ?

charts.kt offers you the best solution for any project: Android, desktop or web application.

Build your charts directly from your data.

charts.kt is strongly typed and helps you to build a visualization based on your data, there is no need to “export” or modify your domain objects, enjoy auto-completion inside our charting DSL.

Fast track integration.

charts.kt manages default configuration for your charts: sizing, padding, colors, formatting… so you can build complex charts in a dozen lines of code.

Features

Environments

Android

Charts.kt is pure Kotlin code, add charts to your Android projects with a powerful Kotlin DSL.

The Web

Enjoy a strongly typed charting library for your Kotlin/JS projects without performance compromises.

Desktop

Build a complete JavaFX charting application and benefits from Charts.kt robust DSL to boost your productivity.

Multiplatform

Write your code once and deploy your charts on any platform, they look, behave and react exactly the same!

Charts types

Line chart

Charts.kt Line chart
  • Straight line
  • Spline
  • Step line
  • Continous / discrete
  • Handle null values
  • Multi-series
  • ...

Bar chart

Charts.kt Bar chart
  • Bars / columns
  • Stacking available
  • Custom bandwidth
  • Floating bars
  • Handle null values
  • ...

Area chart

Charts.kt Area chart
  • Straight / spline / step
  • Overlapped or stacked
  • Area range
  • Handle null values
  • ...

Scatter plot

Charts.kt Scatter plot
  • Use any marker
  • Easy customization
  • Continous / discrete
  • Multi-series
  • ...

Bubble chart

Charts.kt Bubble chart
  • Use any shape
  • Easy customization
  • Continous / discrete
  • Multi-series
  • ...

Box plot

Charts.kt Box plot
  • Candle chart
  • Box and whiskers
  • Direct access to your values
  • ...

Combo chart

Charts.kt Combo chart (Pareto)

Create combo charts by mixing any number of marks or use built-in charts like:

  • Pareto
  • SPC chart
  • Density curve...

Custom chart

Charts.kt Custom chart

There's a ton of options to create your own chart: themes, inline style, decorators... you can even create your own chart by implementing Charts.kt interfaces.

Basic features

Tooltip

Charts.kt smart Tooltip

Charts.kt automatically generate a tooltip based on the values and "smart formatters" but you can handle it yourself to display any information you need.

Cursor

Charts.kt custom Cursor

You have multiple cursor choices, by default, Charts.kt picks the best option to enhance your chart readability, but everything is configurable.

Legend

Charts.kt smart Legend

Legend is generated automatically, and you don't have to worry about its layout.

Still, everything is customizable.

Intelligent configuration

Each chart uses by default the best configuration for a result that respects the standards:

  • ISO-compliant formatters
  • Colorblind-friendly palettes
  • Smart UI choices for every chart
  • Robust DSL
  • Type checking
  • ...

Advanced features

Multi Axes

Charts.kt Multi axis support

You can have multiple axes or you can use the same axis for multiple properties, you can even mix different axes types (temporal, numeric, discrete).

Custom scales

Charts.kt Log scale

Need a logarithmic scale? A power scale? Or your own transformation scale?

Charts.kt accepts any scale that is based on the Data2Viz standard.

Performance

Charts.kt Performance mode

Enable "performance mode" to display thousands of records without sacrificing responsiveness.

Charts.kt goal is to display 100'000 records in less than a second on any platform.

Locale and formatting

Charts.kt Locales and formatting

Charts.kt provides a lot of locales and formatting options for numbers (scientific, percentage...) and dates (hour:minute, full date...).

Interactivity

Chart events

Charts.kt DSL is 100% Kotlin code so you can very easily bind on events or control the chart from your application.

Zoom and pan

Zoom and pan with gestures or mouse depending on your platform.

Force X and/or Y zoom only, or fix value limits in chart's parameters.

Synchronize events

Share events between multiple charts: each event contains all the information and data needed to synchronize it between charts.

Synchronize layouts

Display data along multiple charts and synchronize their layouts to ensure that all axes are perfectly aligned.

Style & customization

Themes

Charts.kt Themes

Choose between multiple built-in themes (dark mode...) or create your own to change the look and feel of all your charts.

Utility marks

Charts.kt Utility marks

Use "utility marks" to draw on your chart: limit lines, trends... They share the same properties as your other marks.

Decorators

Charts.kt mark Decorators

Decorators are a very convenient way to customize your chart by drawing directly on it without having to care about screen coordinates.

Accessibility

Default color schemes offers high contrast.

Control your charts through gestures, mouse and keyboard.

"Smart layout" makes the most of the available size to maintain readability even when resizing.