Skip to content

Latest commit

 

History

History
1148 lines (712 loc) · 58.8 KB

CHANGELOG.md

File metadata and controls

1148 lines (712 loc) · 58.8 KB

Lets-Plot Kotlin API Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning. All scales should have the 'format' parameter.

[4.7.2] - 2024-04-25

This release is 100% compatible with Lets-Plot v 4.3.2.

Fixed

  • LP occasionally crashes when drawing polygons [#1084].
  • Regression of issue [#966].
  • Linetype doesn't work for geomTile() [LPK-241].

[4.7.1] - 2024-04-22

This release is 100% compatible with Lets-Plot v 4.3.1.

Added

Changed

  • LetsPlot.theme global property now accepts a sum of theme/flavor features [#657].

Fixed

  • ggmarginal(): broken coloring [#760].
  • Incorrect 'plot_background' area (with empty space capture) [#918].
  • geom_density2df: uneven borders [#941].
  • Line segments in geom_density2df() do not get interpolated when used with coord_polar() [#1037].
  • arrow on segment: reduce arrow size for short segments [#1040].
  • arrow on curve sometimes looks weird [#1041].
  • Error when build geom_smooth() with se=False [#1050].
  • Add tooltips for geom_curve() [#1053].
  • Incorrect position for bar annotations when specifying scale_x_reverse()/scale_y_reverse() [#1057].
  • Missing outer bar annotations when specifying scale_x_reverse()/scale_y_reverse() [#1058].
  • Plot layout breaks when marginal layers are used [#1074].
  • Discrete scale doesn't work for datetime data [LPK-231].
  • Add linetype parameter in elementLine() and elementRect() [LPK-235].
  • Any way to line-wrap facet labels? [LPK-237].
  • Missing marginal gridlines.
  • Cryptic error message on geom_boxplot with orientation="y" [#600].

[4.7.0] - 2024-03-15

Added

  • coordPolar()

    The polar coordinate system is most commonly used for pie charts, but
    it can also be used for constructing Spider or Radar charts using the flat option.

    See: example notebook.

  • In the theme() function:

    • panelInset parameter - primarily used for plots with polar coordinates.

      See: example notebook.

    • panelBorderOntop parameter - enables the drawing of panel border on top of the plot geoms.

    • panelGridOntop, panelGridOntopX, panelGridOntopY parameters - enable the drawing of grid lines on top of the plot geoms.

  • geomCurve()

    See: example notebook.

  • [UNIQUE] Visualizing graph-like data with geomSegment() and geomCurve().

    • Aesthetics sizeStart, sizeEnd, strokeStart and strokeEnd enable better alignment of
      segments/curves with nodes of the graph by considering the size of the nodes.

    • The spacer parameter allows for additional manual fine-tuning.

    See: example notebook.

  • alphaStroke parameter in geomLabel() to enable the applying of alpha to color [#1029].

    See: example notebook.

Changed

  • Parameter axisOntop in theme() is now true by default.

Fixed

  • Bug with Tooltips in Swing/Batik [LPK-225].
  • coordMap() should distort tiles size to account for different unit size at different latitudes [#331].
  • geomErrorbar(): wrong positioning of tooltips [#992].
  • geomPath(): tooltip position interpolation [#855].
  • Stacked bar-chart annotation: labels go out of the plot when zooming-in using coord_cartesian(xlim, ylim) [#981].
  • Facets: "free scales" options are ignored by discrete axis [#955].
  • Bar width is too large when x-domain is defined via x-scale limits [#1013].
  • How to hide only main tooltip? [LPK-#232].
  • Make middle strip in geomCrossbar() optional [LPK-233].
  • Can't set null for coord limit [#486].
  • Scale limits don't work for bars/area [LPK-219], [#978].
  • No gridlines when axisOntop=True [#1012].
  • Displaying tooltips on a multilayer plot [#1030].
  • Make segment geometry better suited for graphs visualization [#572].

[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).

[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).

[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].

[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].

[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].

[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].

[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].

[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].

[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.

[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]

[4.0.0] - 2022-07-25

BREAKING CHANGES: Due to refactorings performed in the source code, the v4.0.0 is no longer backward compatible with earlier versions of the Lets-Plot Kotlin API.

Changed

  • All previously deprecated API were removed.
  • The prefix "org" was added to all package names in the project.
  • Some API elements were moved from package org.jetbrains.letsPlot to a more specific subpackages:
    • Plot theme elements were moved to subpackage themes
    • Coordinate system functions were moved to subpackage coord
    • Position adjustment functions were moved to subpackage pos
  • Deprecated API:
    • Position adjustment constants: identity, stack, fill, dodge, nudge and jitterdodge (defined in the Pos object), are now deprecated in favor of the correspondent top level elements defined in the (new) org.jetbrains.letsPlot.pos package: positionIdentity, positionStack, positionFill, positionDodge(), positionNudge() and positionJitterDodge().

Migrating to 4.0.0

In Kotlin project

  • Update all import statements: import jetbrains.letsPlot..import org.jetbrains.letsPlot..
  • In all places in your project where the code needs to be updated, IntelliJ will show you a deprecation WARNING and will offer to fix this automatically.

In Jupyter notebook

  • As soon as you start using 4.0.0 in you notebook, the only thing you will want to do is to manually replace all deprecated Pos.abc expressions with their new equivalents:
    • Pos.identitypositionIdentity
    • Pos.stackpositionStack
    • Pos.fillpositionFill
    • Pos.dodgepositionDodge()
    • Pos.nudgepositionNudge()
    • Pos.jitterdodgepositionJitterDodge()

NOTE: If your notebook also uses another Kotlin library which depends on an older version of Lets-Plot, then the classloader may refuse to load classes from both libraries. If this is the case, then you will want to do NOT update your notebook to Lets-Plot v4.0.0 as yet:

  • Make sure your notebook is not using the %useLatestDescriptors line magic
  • Make sure you are using Kotlin Jupyter Kernel version 0.11.0.95 (or earlier), which bundles a previous version of Lets-Plot.

[3.3.0] - 2022-06-27

Added

  • Global theme configuring with LetsPlot.theme property.

    See: example notebook.

  • Quantile-Quantile (Q-Q) plot:

    • geometries:
      • geomQQ()
      • geomQQLine()
      • geomQQ2()
      • geomQQ2Line()
    • stats:
      • statQQ()
      • statQQLine()
      • statQQ2()
      • statQQ2Line()
    • quick Q-Q: qqPlot()

    See: example notebook.

  • Marginal plots: the ggmarginal() function.

    See: example notebook.

  • Parameter orientation in geoms: bar, boxplot, density, histogram, freqpoly, smooth, violin.

    See: example notebook.

  • New in plot theme:

    • face parameter in elementText().

      See: example notebook.

    • panelBorder parameter in theme() [#542].

      See: example notebook.

    • Tooltip theme options, new parameters in theme():

      • tooltip - tooltip rectangle options;
      • tooltipText, tooltipTitleText - tooltip text options;
      • axisTooltipText, axisTooltipTextX, axisTooltipTextY - axis tooltip text options.

      See: example notebook.

  • scaleColorGradientN() and scaleFillGradientN() functions [#504].

    See: example notebook.

  • kotlinx.datetime support.

  • arrow parameter in geomSegment - specification for arrow heads, as created by arrow() function.

Changed

  • Potentially breaking change: deprecation level for all deprecated API raised to the ERROR level.
  • geomImage() removed as it is not yet production ready.
  • Default sampling type for geom_violin switched from systematic to pick.

Fixed

  • Labels out of plot when axisTextY="blank" [#525].
  • Outliers are not shown when boxplot' alpha=0.
  • JFX rendering issue that causes tooltips to stuck [#539].
  • Support trim parameter in density and ydensity stats [#62].
  • geom_violin: add missing parameters kernel, bw, adjust, n, fs_max to signature and docstring.

[3.2.0] - 2022-03-29

Added

  • New geometries:

    • geomViolin()

    See: example notebook.

    • geomDotplot()

    See: example notebook.

    • geomYDotplot()

    See: example notebook.

  • Plot subtitle and caption: subtitle parameter in ggtitle() and labs(), caption parameter in labs(), plotSubtitle and plotCaption parameters in theme().

    See: example notebook.

  • Multi-line labels: The 'newline' character (\n) now works as line break in plot title, subtitle and caption, in legend's title and in tooltips.

  • In tooltip customization API: the title() option defines a tooltip "title" text which will always appear above the rest of the tooltip content.

    See: example notebook.

  • Parameter scales in facetGrid()/facetWrap() [#451, #479].

    See: example notebook.

Changed

  • New tooltip style: rounded corners, bold label, colored marker inside the tooltip.
  • Deprecated tooltip customization API: function color() will be removed in one of the future releases.
  • 'Auto shrink': plots automatically shrink when necessary to fit width of the output (notebook) cell [#488].

Fixed

  • Automatic detection of DateTime series [#99].
  • Too limited mapping options in GenericAesMapping [#82]
  • scaleColorManual Divide by Zero with 1 mapping [#506].
  • LinearBreaksHelper$Companion.computeNiceBreaks out of memory error [#105].
  • CVE-2021-23792 in org.jetbrains.lets-plot:lets-plot-image-export@2.2.1 [#497].
  • Fix tooltips for geom_histogram(stat='density').
  • The axis tooltip overlaps the general tooltip [#515].
  • The multi-layer tooltip detection strategy will only be used if more than one layer provides tooltips.

[3.1.1] - 2021-12-13

Added

  • scaleXTime() and scaleYTime().

    See: example notebook.

  • plotBackground, legendBackground parameters in theme() [#485].

  • axisOntop, axisOntopX, axisOntopY parameters in theme()

Fixed

  • It should automatically stringify enums [#97].
  • Coord system limits do not work with x/y scale with transform [#474].
  • Provide 0-23 hour formatting [#469].
  • No tooltip shown when I'm trying to add an empty line [#382].
  • coord_fixed() should adjust dimensions of "geom" panel accordingly [#478].
  • The tooltip dependence on number of factors works separately by layers [#481].
  • Tooltip on y-axis looks wrong [#393].
  • Is kotlin-reflect really needed for lets-plot? [#471].

[3.1.0] - 2021-11-05

Added

  • coordFlip().

    See: example notebook .

  • Date-time formatting support:

    • using date-time format pattern in tooltip format();
    • date/time scales apply date-time formatting to the breaks.

    See Out[7, 8, 10] in the example notebook .

  • Pre-configured themes:

    • Standard ggplot2 themes: themeGrey(), themeLight(), themeClassic(), themeMinimal();
    • Other themes: themeMinimal2() - the default theme, themeNone().
  • Theme modification: more parameters were added to the theme() function.

    See: example notebook.

Note: fonts size, family and face still can not be configured.

  • CorrPlot() function now also accepts pre-computed correlation coefficients.

  • Kotlin/JS IR: xxx.klib artifacts are now available.

    See: sample Kotlin/JS IR app

Changed

  • The size of fonts on plot was slightly increased all across the board.
  • The default plot size was increased by 20%, it's now 600x400 px.
  • Deprecated API: all Theme.xxxBlank() functions. Please use corresponding parameters in theme().

Fixed

  • Ordering facets - the "order" value 0 disables facet ordering [#454].
  • Tooltips for discrete variables: add the dependence of the tooltip on the number of factors. The X-axis tooltip is always shown for discrete data.
  • Unreadable breaks on axis [#430].

[3.0.2] - 2021-06-09

Added

  • Ordering categories:

    New parameters added to the asDiscrete() function:

    • orderBy - name of the variable by which the ordering will be performed;
    • order - ordering direction: 1 for ascending direction and -1 for descending (default).

    See: as_discrete.

Changed

[3.0.1] - 2021-06-09

Added

  • The 'format' parameter in all scales [76].

Changed

  • Upgraded kotlinx.html version to 0.7.3 (was 0.7.2)

In JVM projects it's no longer necessary to add https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven repository to the project configuration.

Fixed

  • Multilayer plots are corrupted [#385].
  • Import "lets-plot-common" transitively [#78]

[3.0.0] - 2021-06-04

Added

  • In tooltip customization API:

    • layerTooltips(variables) - the new parameter variables defines a list of variable names, which values will be placed in the general multiline tooltip. See: Tooltip Customization.
  • lets-plot-mini-apps GitHub repository containing examples of using the Lets-Plot Kotlin API in JVM and Kotlin/JS projects.

Changed

Fixed

  • Poor font rendering in Swing/Batik. Related to: [#364]
  • Exclude slf4j implementation from lets-plot-common [#374]
  • geom_boxplot: should be possible to create boxplot without specifying x-series [#325]
  • geom_hline: graph plotted outside of coordinate plane visible part [#334]
  • Draw geometry only once if layer has no aes mapping specified [#73]
  • Can't build plot: "Uncaught SyntaxError: Unexpected string" in a console [#371]

[2.0.1] - 2021-04-19

Changed

  • [BREAKING CHANGE]: The groupId of all maven artifacts is now "org.jetbrains.lets-plot" (was " org.jetbrains.lets-plot-kotlin")
  • Built with Lets-Plot v2.0.2 (was v2.0.2).
  • All snake_case symbols were deprecated and replaced with equivalent camelCase symbols [#53].
  • Maven artifacts published to Maven Central (due to shutting down of Bintray, JCenter)

[1.3.0] - 2021-03-22

Added

  • facet_wrap() function.

  • in facet_grid() function:

    • Ascending/descending ordering of faceting values.
    • Formatting of faceting values.

    See: Facets demo

  • The format parameter in positional scales: formatting tick labels on X/Y axis. Supported types are number and date/time.

    Example:

    scale_x_datetime(format="%b %Y")
    scale_x_continuous(format="is {.2f}")
    

    Demo: Formatting demo

    See also: Formatting

  • The guides() function [#52].

  • In tooltip customization API:

    • option color overrides the default tooltip color:
      geom_xxx(tooltips=layer_tooltips().color("red"))
      

    See: Tooltip Customization.

Changed

  • Built with Lets-Plot v2.0.1 (was v1.5.6).
  • All Java Swing demos were updated to use new plot components (new in Lets-Plot v2.0.1).
  • The "Minimal demo" was updated:

Fixed

  • show() should actually show a plot [#51]
  • Facet grid truncated in jupyter [#28].

The majority of fixes in the core Lets-Plot vv 2.0.0, 2.0.1 are also applicable to this release.

See the Lets-Plot CHANGELOG.md.

[1.2.0] - 2021-01-15

Added

Changed

  • Built with Lets-Plot v1.5.6 (was v1.5.4).

    See Lets-Plot CHANGELOG.md for changes and fixes in 1.5.5, 1.5.6.

[1.1.0] - 2020-11-20

Added

  • GeoTools support (see geotools.md).
  • API for tooltip customization ( see tooltips.md).
  • geom_map().
  • labelFormat parameter in geom_text().
  • reverse parameter in scale_x/y_discrete().
  • scale_x_discrete_reversed(), scale_y_discrete_reversed()

Changed

  • Built with Lets-Plot v1.5.4 (was v1.5.2).

    See Lets-Plot CHANGELOG.md for changes and fixes in 1.5.3, 1.5.4.

Fixed

  • ggsave() ignores raster format file extension.
  • as_discrete(): if more than one is used in the same mapping block, then all but one of them are ignored.

[1.0.0] - 2020-08-13

Added

  • The first public release.

Changed

  • Maven artifact group id has changed.
    • was before: org.jetbrains.lets-plot
    • since now : org.jetbrains.lets-plot-kotlin