Download Latest Version v4.15.0 source code.zip (51.9 MB)
Email in envelope

Get an email when there's a new version of Lets-Plot Kotlin API

Home / v4.13.0
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-03-20 8.1 kB
v4.13.0 source code.tar.gz 2026-03-20 44.3 MB
v4.13.0 source code.zip 2026-03-20 44.8 MB
Totals: 3 Items   89.1 MB 0

[4.13.0] - 2026-03-20

This release is 100% compatible with Lets-Plot v 4.9.0, GeoTools v 33.2

Added

  • Plot Annotations:

  • New labels parameter in geomSmooth() designed to display statistical summaries of the fitted model directly on the plot. This parameter accepts a smoothLabels() object, which provides access to model-specific variables like $R^2$, the regression equation and others [#1388].

    See: example notebook.

  • Plot tags. A tag can be specified via labs(tag = ...) and styled using theme parameters [#1407].

    See: example notebook and updated Plot Layout Diagrams.

  • Plot tags customization parameters in theme():

    • plotTag - sets the tag style via elementText().
    • plotTagLocation - specifies the area used for positioning the tag.
    • plotTagPosition - specifies the position of the tag within the selected area.
    • plotTagPrefix - text added before the tag value.
    • plotTagSuffix - text added after the tag value.

    See: example notebook.

  • Geometries:

  • New geomBracket(), geomBracketDodge() [#1114].

    See: example notebook.

  • geomImshow():

    • Support for custom colormaps [#780].
    • New cguide parameter: use to customize the colorbar for grayscale images.

    See: example notebook.

  • Color Scales:

  • New palette() method for color scales: generates a list of hex color codes that can be used with scaleColorManual() or scaleFillManual() to maintain consistent colors across multiple plots [#1444].

    See: example notebook.

  • New overflow parameter in scaleColorBrewer() / scaleFillBrewer(): controls how colors are generated when more colors are needed than the palette provides. Options: "interpolate" ("i"), "cycle" ("c"), "generate" ("g").

    See: example notebook.

  • Positional Scales:

  • New breakWidth parameter that specifies a fixed distance between axis breaks.

    See examples:

  • Support for axis minor ticks via axisMinorTicks and axisMinorTicksLength parameters in theme() [#1379].

    See: example notebook.

  • gggrid(): interactive pan/zoom now propagates across subplots with shared axes (sharex / sharey) [#1413].

See: example notebook.

  • Swing Apps:

Support for plot default interactions and custom toolbar component.

For more details, see Interactions demo in the "lets-plot-mini-apps" repository.

Changed

  • Kotlin: v2.2.20 (was v1.9.25).
  • Artifact changes in the core Lets-Plot library (v4.9.0):
  • New artifact for JVM Swing applications: org.jetbrains.lets-plot:lets-plot-swing. This artifact provides the SwingPlotPanel class, which can be used to display plots in Swing applications instead of the now-obsolete DefaultPlotPanelBatik. For details, see the jvm-swing-app example in the "lets-plot-mini-apps" repository.
  • [BREAKING]: Removed JavaFX artifacts. The org.jetbrains.lets-plot:lets-plot-jfx artifact is no longer available. Replace it with new org.jetbrains.lets-plot:lets-plot-swing dependency and use SwingPlotPanel instead of DefaultPlotPanelJfx. For details, see the jvm-javafx-app example in the "lets-plot-mini-apps" repository.
  • [BREAKING]: Removed plot-image-export module. The org.jetbrains.lets-plot:lets-plot-image-export artifact is no longer available. The PlotImageExport utility has been moved to the platf-awt module: org.jetbrains.letsPlot.awt.plot.PlotImageExport. The required org.jetbrains.lets-plot:platf-awt dependency is likely already present in your project.

  • [BREAKING]: ColorBrewer palettes: changed default behavior when the requested number of colors exceeds the palette's maximum size. Now defaults to "interpolate" for sequential/diverging palettes and "generate" for qualitative palettes. Previously, depending on the palette type, this either resulted in duplicate colors or random additional colors. Use the new overflow parameter to explicitly control this behavior.

  • Missing values in geomAreaRidges() create gaps in geometries instead of being interpolated over.

  • Discrete color scales (Brewer, Manual) now produce a colorbar guide when used with continuous data. Previously they produced a legend guide regardless of the data type.

Fixed

  • Drop commons-io dependency [#1421].
  • Unexpected replacement of double curly brackets with a single curly bracket [#1433].
  • geom_imshow: unclear error message when mixing transparencies [#1088].
  • geom_imshow and scale_y_reverse [#1210].
  • Nice to be able to get a list of colors from a color scale object [#1444].
  • Allow tooltips param to accept list [#1455].
  • Allow grouped tooltips for plots with multiple univariate geoms [#1460].
  • Fixed a regression in geomTextRepel() / geomLabelRepel(): points with empty labels were incorrectly skipped before building the repel obstacle set, so they were not included in collision avoidance and labels could overlap dense point clusters.
Source: README.md, updated 2026-03-20