Skip to content

Releases: Kotlin/kandy

v0.8.3

12 Dec 12:42

Choose a tag to compare

This is a technical release, fully compatible with Kotlin DataFrame 1.0.0-Beta4.

The Kandy statistics module now uses the same version as the main Kandy artifact.

To use it in a Notebook:

%use kandy(0.8.3, 0.8.3)

Or simply load the latest available descriptors:

%useLatestDescriptors
%use kandy
  • If you want to include dataframe, list it before kandy:
%useLatestDescriptors
%use dataframe, kandy
// or
%use dataframe(1.0.0-Beta4n), kandy(0.8.3, 0.8.3)
  • New dataframe and kandy versions are not supported by older Kotlin Jupyter kernel versions.
    Please use kernel 0.16.0-736 or newer.

Versions

  • Kandy statistics - 0.8.3
  • Kotlin Notebook - IDEA 2025.2 or newer;
  • Jupyter Kernel - 0.16.0-736 or newer;
  • Kotlin DataFrame - 1.0.0-Beta4 in Gradle projects / 1.0.0-Beta4n in notebooks;

Changes

This release also includes several small but important improvements - many thanks to our wonderful contributors!

Features

Fixes

Documentation

New Contributors

Full Changelog: v0.8.0...v0.8.3

v0.8.0

13 Feb 15:26

Choose a tag to compare

v0.8.0: Geoplotting

In this release of Kandy, we’re excited to announce the debut of our geodata plotting API. With the introduction of GeoDataFrame and Kandy-Geo, you can now effortlessly visualize geospatial data using the familiar Kandy DSL. This allows for flexible and detailed customization to meet your specific needs.

This marks the first step in enhancing geoplotting capabilities, and we’re eager to hear your feedback to help shape future improvements. See user guide to get introduced to geo-plotting and learn how to create geographic visualizations using Kandy.

Compatible with DataFrame v0.15.0 and statistics v0.4.0.

usa_with_cities
See the code for this plot and many others in the geo plots gallery.

kandy-lets-plot

Added

Changed

  • limits was moved under axis:
x.axis.limits = ...

y {
   axis {
      limits = ...
   }
}

Fixed

  • Axis limits behaviour (#342). Now axis.limits (as well as a new alternative API axis.min and axis.max) sets actual plot axis limits aligned with the selected coordinates transformation.

kandy-geo

Introducing a new kandy-geo module that enables seamless plotting of GeoDataFrame and JTS geometries (#280, #441). This addition simplifies the visualization of geospatial data, providing intuitive and efficient tools for rendering geographic shapes and data directly on plots.

See user guide and examples gallery.

0.7.1

27 Sep 11:51

Choose a tag to compare

Kandy 0.7.1

This release adds compatibility with DataFrame v0.14.1.

Compatible version of statistics: 0.3.1.

Fixes

  • Fixed axis position (#434).

0.7.0

19 Aug 13:31

Choose a tag to compare

Kandy 0.7.0

This release was mainly focused on technical debt and internal API improvements. Nevertheless, the result of this was noticeably reflected in the public API - in particular, all internal DSL properties were hidden, which will further improve the quality when working with completion in the IDE and library exploring.

Changed

⚠️ Breaking:

  • Global refactoring of Kandy Internal API (#378, #379, #380, #381, #382). The structure of classes and interfaces has been significantly redesigned. This has almost no effect on the Public API (Kandy DSL), except that all internal properties are no longer publicly available (#163). If you have been using Kandy Internal API, we are ready to help you with migration, please contact us.

Added

  • Added spacerWidth setting missing in pie charts (#385).
  • Added type line parameter for custom styles (#334).

Fixes

  • Fixed scale for area and bars (#236).
  • Fixed border line type for tiles (#375).
  • middle in boxes and y in crossBars are optional (#322).
  • Several fixes in Kotlin Notebook:
    • Added theme selector in Save Plot action (#265).
    • Fixed tooltips hover-up (#290).

Documentation

  • Added pie chart gallery examples (#424).
  • Fixed links in documentation (#383, #386).

Other

  • All TODOs were removed from the code by moving them to issues (#398).

We always welcome your contributions. Simple (but no less important) issues are labeled with label: Good first issue. You can find them here.

v0.6.0

25 Mar 09:56

Choose a tag to compare

Added

  • Added candlestick plot (#149, #278). See documentation (guide and examples).
  • Added extensions Plot.toSVG(), Plot.toPNG(), Plot.toHTML() (#293).
  • Fixed tooltips behaviour (#156, #266). Now explicitly assigning tooltips removes side tooltips.
  • Added boxes new whiskerWidth parameter (#299).
  • Added void theme (#310).
  • Added margin text parameter (#323).
  • Added viridis color scales (#301).
  • Added new scales transformations (#311).
  • Added scale/axis position option (#306).
  • Added extension functions to export plots to JPG and PNG as ByteArray (#325) by @gulshanpatidar.

Changed

⚠️ Breaking:

  • Fixed naming of flavor/color scheme/theme (#127). Related properties was renamed:
    • flavor/Flavor -> theme/Theme
    • applyColorScheme -> applyTheme
    • theme/Theme -> style/Style
  • hide: Boolean argument in tooltips() was replaced with enable: Boolean with the opposite behavior.

Fixed

  • Tooltip bug (#136)

Documentation

v0.5.0

30 Nov 08:47

Choose a tag to compare

Api changes:

  • Stabilized core API - plot DSL:
    • plot creation with plot {} and DataFrame.plot {}
    • layers adding with LayerPlotContext.points {} and other layer functions
    • mappings (via function invocation) and settings(via var assignment) API
  • Most of internal API in DSL are hidden(#163)
  • Statistics was removed from kandy-lets-plot. The statistics have been reworked and separated into the new repository (private yet) and artifact.
  • Restructured packages

Documentation

Fixes and improvements

  • Fix bugs with plot dataset
  • Fix web outputs
  • Type parameters in scale creation functions are reordered according to arguments(#206)
  • Add scale type bound for aes (#96)
  • The static SVG view has been improved: it has become scalable and fitting.
  • Small API improvements

Note! ⚠️ Some parts of the API have been changed without backwards compatibility, as the API was under active development before version 0.5.0. In case you used kandy before 0.5.0 and you are experiencing difficulties with migration to 0.5.0, please contact us.

0.4.4

21 Jul 14:07

Choose a tag to compare

New dataset system: by default layer uses global dataset, but if user makes a first mapping from new source whose size differs from the length of the global dataset columns, the leer creates a new dataset

0.4.3: github compatible plot view

02 Jun 11:27

Choose a tag to compare

Now lets-plot kandy plots in notebooks are displayed on github in svg format. Check it out:
https://github.com/Kotlin/kandy/blob/main/examples/notebooks/lets-plot/lets_plot_cheatsheet.ipynb

0.4.2: minor improvements

25 May 17:40
6bed831

Choose a tag to compare

  • pie chart (#142)
  • alpha range validation (#130)
  • required aes validation (#144)
  • new LegendType API (#146)
  • hLine and vLine fix
  • tooltips API changes
  • new Brewer colors API

0.4.1

04 May 18:41

Choose a tag to compare

group by dataset handler test