Skip to content

Releases: JetBrains/lets-plot-kotlin

v4.6.0

10 Jan 18:53
Compare
Choose a tag to compare

[4.6.0] - 2024-01-10

Added

Changed

  • [BREAKING] Function margin() is deprecated and will be removed in future releases.

    Please replace all existing usages, i.e. theme(plotMargin=margin(..)) and elementText(margin=margin(..))

    with a list or with just a number:

    • a number or list of one number - the same margin it applied to all four sides;
    • a list of two numbers - the first margin applies to the top and bottom, the second - to the left and right;
    • a list of three numbers - the first margin applies to the top, the second - to the right and left,
      the third - to the bottom;
    • a list of four numbers - the margins are applied to the top, right, bottom and left in that order.

    See: example notebook.

  • Geotools: migrate to v30 [#217].

    [BREAKING] GeoTools v30 and up is not backward compatible with v29 and below due to

    renaming of all "org.opengis" packages into "org.geotools.api" ones.

    See release notes: http://geotoolsnews.blogspot.com/2023/09/geotools-30-rc-released.html

  • Upgraded Apache Batik to version 1.17 [#887]

Fixed

  • Jitter reproducibility in geomJitter, positionJitter, positionJitterDodge [#911].
  • Bug with Tooltips in Swing/Batik [#225].
  • Facets: order = 0 doesn't work as expected [#923].
  • Enormous CPU / Time/ Memory consumption on some data [#932].
  • gggrid: composite plot is not visible if saved with ggsave [#942].
  • gggrid doesn't override global theme [#966].
  • Marginal box-plots aren't shown when requested on more than 1 plot side.
  • Marginal plot: use "pen" as default color for marginal layers.
  • gggrid() doesn't use global theme settings.
  • NumberFormat: g format doesn't use e-notation for small numbers [#965].
  • Tooltips: graphical artifacts and bad performance in multi-line plot in Batik [#967].
  • Wrong tooltip position on geom_segment() with position adjustment [#963].
  • geomBoxplot(): use outlierAlpha to boxplot outliers (not apply alpha).

v.4.5.0

06 Nov 22:20
Compare
Choose a tag to compare

[4.5.0] - 2023-11-06

Added

Fixed

  • Husl palette equivalent [#876].
  • Tooltips are trimmed and not visible on a very narrow chart [#837].
  • Exception label is unresizeble, uncopyable and uncontrollable [#902].
  • Flickering during plot downsizing [#888].
  • Bad default formatting of numeric values in annotations [#905].
  • corr_plot: unexpected whitespace between the "geometry area" and the legend [#877].
  • scale_log: an option to generate only breaks which are integer powers of 10 needed [#850].
  • Trimmed legend when bounds of the rightmost X-axis tick label exceeds the axis length [#851].
  • HTML files exported using ggsave() are missing the encoding specification [#900].
  • plot_margin parameter in theme() [#856].
  • Subplot themes not inherited by parent [LPK-#197].
  • element_blank() has no effect on plot title/subtitle/caption in theme() [#913].
  • Lollipop in legend is disproportionately large [LPK-216].
  • geomBar with fill, produces tooltips artefacts [#895].
  • Exception, when trying to build plot with column name containing line breakes [#894].
  • Added "grey" spelling for the gray color (earlier - "gray" only).

v4.4.3

15 Sep 20:13
Compare
Choose a tag to compare

[4.4.3] - 2023-09-15

Added

Changed

  • If layer transparency is set via the alpha-channel in the colors RGBA specification and via the alpha aesthetic,
    then the alpha aesthetic overrides the alpha-channel in the color. Previousely it was the opposite.

  • geomPie() defaults:

    • "stroke" is visible and strokeSide="both" (was strokeSide="outer").
    • the "hole" is not created automatically when strokeSide = "both"/"inner" (was created automatically).
  • geomBar() now has solid outline color by default (was transparent).

  • geomTile(), geomBin2D() now have solid outline color by default (was transparent).

    • however, by default the size is 0 (i.e. tiles outline initially is not visible).
  • [DEPRECATED] Function statCount2d has been renamed to statCount2D. The old name is deprecated.

Fixed

  • themeVoid() + flavorXxx(): no expected plot background [#858].
  • geomTile(), geomBin2D() : the alpha aesthetic is applied to the tiles outline.
  • scaleXDateTime(): error building plot for early dates [#346].
  • Inconsistent color in legend when using paint_a/paint_b/paint_c [#867].

v4.4.2

23 Aug 22:36
Compare
Choose a tag to compare

[4.4.2] - 2023-08-23

Added

Changed

Note: Due to major package refactoring in the main Lets-Plot library, this version (4.4.2) of the Kotlin API
is not compatible with versions of Lets-Plot library v3.2.0 and earlier.

  • The default qualitative color palette is now Color Brewer "Set1" (was "Set2")

  • Geometries default colors are now flavor-dependent: example notebook.

  • Geometries default size/line-width is now slightly bigger.

  • Point size is adjusted to match the width of a line of the same "size".

  • [BREAKING] Kotlin/JS LEGACY apps are no longer supported.

  • [BREAKING] geomPie() no longer supports parameter strokeColor.

  • [BREAKING] geomBoxplot() no longer support parameter sampling.

  • [BREAKING] geomPointRange(): size aesthetic shouldn't affect line width [#751]:
    linewidth aesthetic is now used for the line width, size - for mid-point size only.

  • geomBoxplot(): size and stroke parameters now affect outlier shapes.

Fixed

  • ggsave: saving geomImshow() to SVG produces fuzzy picture [#188].
  • geomCrossbar() aesthetics take middle argument instead of y [#804].
  • geomBoxplot() doesn't apply alpha to outliers [#754].
  • geomBoxplot(): outliers do not show tooltips.
  • geomBoxplot(): some strange outliers drawn here [#143].
  • geomStep(): no tooltips.
  • geomStep(): add 'tooltips' parameter [#195].
  • geomStep(): toggle the behavior of the direction parameter when the orientation is changed.
  • geomRibbon(): not all tooltips are shown on a multi-layer plot [#847].
  • Bug in empty plot: IndexOutOfBoundsException [#194].
  • How to remove side tooltips without anchor? [#189].

v4.4.1

11 May 20:55
Compare
Choose a tag to compare

[4.4.1] - 2023-05-11

Fixed

  • Lets-Plot dependency: was 3.2.0-RC1, now 3.2.0.
  • ggsave: an error if file does already exist [#187].

v4.4.0

10 May 20:28
Compare
Choose a tag to compare

[4.4.0] - 2023-05-10

Added

  • geomLollipop().

    See: example notebook.

  • Aesthetic stroke and its scales scaleStroke(), scaleStrokeIdentity().

    See: example notebook.

  • Aesthetic linewidth (for geomLollipop()) and its scales scaleLinewidth(), scaleLinewidthIdentity().

    See: example notebook.

  • The 'newline' character (\n) now works as line break in legend text.

    See: example notebook.

  • Horizontal error bars and vertical "dodge".

    See: example notebook.

  • "Colorbar" in geom_imshow(). Parameters show_legend and color_by [#717].

Changed

  • [BREAKING] geomDotplot() and geomYDotplot() no longer support parameter stat.

  • [BREAKING] Identity scales don't create a legend by default.

Fixed

  • Support multiple subdirectories in ggsave path [contribution by David Phillips].
  • scaleXDiscrete doesn't make scale discrete [#165].
  • Batik: geom_imshow() fail with an error: "The attribute "xlink:href" of the element is required"
  • Batik: bug with usage of "&" [#713].
  • Categorical ordering, it's not respected for Boxplot and violin
    plot [#746].
  • Groups not sorted similarly when using facets [#679].
  • HTML export: exclude computation messages from the output [#725].
  • Image export not working with geom_imshow()
    and geom_raster() [LPK-175].
  • geom_segment() doesn't take into account the alpha [#748].
  • geom_density2d: Internal error with None values in data [#702].
  • DateTime metadata is not applied for scales other than
    X/Y [LPK-174].
  • Quantile should be shown in tooltip if the variable ..quantile.. is mapped to geom aesthetic.
  • Bad default formatting for stat variables [#654].
  • The scale name does not apply with as_discrete() [#653].
  • Tooltip is not shown when configured for 'const' value [#610].
  • Fix crash when try to add a constant to a tooltip (e.g."^size", where size aesthetic is specified with a number).
  • "Variable not found" error in ggmarginal [#681].
  • facet_grid: Internal error [#699].
  • Tooltips bug [LPK-176].

v4.3.0

10 Mar 02:00
Compare
Choose a tag to compare

[4.3.0] - 2023-03-09

Added

  • gggrid() function (docs), as a replacement for earlier variant of gggrid().

    • plots inner area alignment in grid
    • nested grids
    • works well with ggsize()

    See: example notebook.

  • jointPlot().

    See: example notebook.

  • Axis position parameter in position scales scaleX*(), scaleY*().

    See: example notebook.

  • Drawing quantile lines and filling quantile areas in geomViolin() and geomDensity().

    See: example notebook.

  • angle parameter in elementText() in theme().

    See: example notebook.

  • Additional "color" aesthetics: paint_a, paint_b, paint_c.

    These aesthetics are flexible and can be used as either "color" or "fill" as needed.

    See Multiple Color Scales demo.

    Also added a set of related "color scale" functions with the "aesthetic" parameter for configuring of additional color scales.

    See New "Scale" Functions demo.

  • density2d and density2df geometry types in residualPlot().

Changed

  • [BREAKING] geomViolin() no longer supports parameter drawQuantiles. Use new quantileLines and quantiles parameters as needed.

  • [BREAKING] stack and fill position adjustments now stack objects on top of each other only if these objects belong to different groups.

    If necessary, use mode="all" in positionStack() or positionFill() to stack objects regardless of their group.

    See: example notebook.

  • [BREAKING] The deprecation level raised to "ERROR" for all API that was deprecated in v. 4.2.0 and earlier.

  • [DEPRECATED] The earlier variant of gggrid().

    From now-on please use new variant added in this release: new gggrid().

  • Sampling: drastically increased default N for "pick sampling" and for other types of sampling [#687].

Fixed

  • Tooltip does not reflect ..quantile.. aesthetic change [#658].
  • 'map_join': variable is lost after "stat" [#664].
  • Error when tooltip has variable mapped to aesthetic used by stat [#665].
  • Groups not sorted similarly when position='stack' [#673].
  • Area ridges: fill overlaps geometry borders when colors are repeated [#674].
  • Sampling: increase the default N for "pick sampling" and for other types of sampling [#687].

v4.2.0

30 Dec 02:04
Compare
Choose a tag to compare

[4.2.0] - 2022-12-29

Added

Changed

  • Upgraded Lets-Plot version to 3.0.0 (was 2.5.1).
  • Java/Swing platf.: Apache Batik upgraded to v.1.16 [#624], [LPK #140].
  • The default size is increased for the plot title and decreased for the caption.
  • Upgraded Kotlin version to 1.7.21 (was 1.7.20).

Fixed

  • Themes: can't change plot background after applying a "flavor" [#623].
  • Layout: uneven left/right, top/bottom plot margins [#625].
  • A plot building error with empty data on various geoms.
  • Precision error in gradient [#634].

v4.1.1

09 Nov 01:44
Compare
Choose a tag to compare

[4.1.1] - 2022-11-08

Added

  • In geomText(), geomLabel():

    • the 'newline' character (\n) now works as line break
    • lineheight aesthetic
    • nudgeX, nudgeY parameters
    • special text alignments (vjust and hjust): "inward" and "outward"

    See: example notebook.

  • vjust parameter in positionStack() and positionFill().

    See: example notebook.

Changed

  • Deprecated API:

    • positionStack, new usage: positionStack()
    • positionFill, new usage: positionFill()
  • geomBoxplot(): default value for parameter whiskerWidth is 0.5.

  • Upgraded Kotlin version to 1.7.20 (was 1.6.21).

  • Upgraded Lets-Plot version to 2.5.1 (was 2.5.0).

    See Lets-Plot What is new in 2.5.1
    for more details.

Fixed

  • elementBlank() has no effect in theme legendTitle [#608].
  • Tooltip: different formats for same aesthetic Y [#579].
  • Positioning with "constant" x/y doesn't work on axis with log10 transform [#618].
  • Positional "constant" doesn't honor axis limits [#619].
  • Several issues leading to crush in Swing/Batik apps. Related to [discussions]
  • Text labels got trimmed occasionally, when symbols -, /, \ or | present.

v4.1.0

30 Sep 21:21
Compare
Choose a tag to compare

[4.1.0] - 2022-09-30

Added

  • New theme: themeBW().

    See: example notebook.

  • Color schemes (flavors) applicable to existing themes:

    • flavorDarcula()
    • flavorSolarizedLight()
    • flavorSolarizedDark()
    • flavorHighContrastLight()
    • flavorHighContrastDark()

    See: example notebook.

  • Viridis color scales: scaleColorViridis(), scaleFillViridis().

    See: example notebook.

  • New parameters in theme's elementText():

  • Parameter whiskerWidth in geomBoxplot().

    See: example notebook.

  • New geometry geomLabel().

    See: example notebook.

Changed

Fixed

  • Density and area geoms: preserve the z-order when grouping [#552].
  • Boxplot, violin, crossbar: position dodge width=0.95 should be used by default [#553].
  • Unclear size unit of width [#589].
  • No tooltips for geomBoxplot with zero height [#563].
  • geomText: wrong label alignment with hjust 0 and 1 [#592].
  • Documentation for the breaks parameter in scales [#507]