Changelog History
Page 1
-
v4.1.0 Changes
September 30, 2022โ 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()
:size, family
(example notebook)hjust, vjust
for plot title, subtitle, caption, legend and axis titles (example notebook)margin
for plot title, subtitle, caption, axis titles and tick labels (example notebook)
Parameter
whiskerWidth
ingeomBoxplot()
.
See: example notebook.
- ๐ New geometry
geomLabel()
.
See: example notebook.
๐ Changed
- ๐ New tooltip style after applying
coordFlip()
[#580].
See: example notebook.
๐ Fixed
- Density and area geoms: preserve the z-order when grouping [#552].
- 0๏ธโฃ 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 withhjust
0 and 1 [#592].- ๐ Documentation for the
breaks
parameter in scales [#507]
- ๐ New theme:
-
v4.0.0 Changes
July 25, 2022๐ฅ 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
- Plot theme elements were moved to subpackage
๐ Deprecated API:
- Position adjustment constants:
identity, stack, fill, dodge, nudge
andjitterdodge
(defined in thePos
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()
andpositionJitterDodge()
.
- Position adjustment constants:
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.identity
→positionIdentity
Pos.stack
→positionStack
Pos.fill
→positionFill
Pos.dodge
→positionDodge()
Pos.nudge
→positionNudge()
Pos.jitterdodge
→positionJitterDodge()
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.
-
v3.3.0 Changes
June 27, 2022โ 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 inelementText()
.
See: example notebook.
panelBorder
parameter intheme()
[#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()
andscaleFillGradientN()
functions [#504].
See: example notebook.
- ๐
kotlinx.datetime
support. arrow
parameter ingeomSegment
- specification for arrow heads, as created byarrow()
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. - 0๏ธโฃ Default sampling type for
geom_violin
switched fromsystematic
topick
.
๐ 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
andydensity
stats [#62]. geom_violin
: add missing parameterskernel
,bw
,adjust
,n
,fs_max
to signature and docstring.
- ๐ง Global theme configuring with
-
v3.2.0 Changes
March 29, 2022โ Added
- ๐ New geometries:
geomViolin()
See: example notebook.
geomDotplot()
See: example notebook.
geomYDotplot()
See: example notebook.
- Plot subtitle and caption:
subtitle
parameter inggtitle()
andlabs()
,caption
parameter inlabs()
,plotSubtitle
andplotCaption
parameters intheme()
.
See: example notebook.
Multi-line labels: The 'newline' character (
\n
) now works asline 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.
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:[email protected] [#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.
- ๐ New geometries:
-
v3.1.1 Changes
December 13, 2021โ Added
scaleXTime()
andscaleYTime()
.
See: example notebook.
plotBackground, legendBackground
parameters intheme()
[#485].axisOntop, axisOntopX, axisOntopY
parameters intheme()
๐ 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].
-
v3.1.0 Changes
November 05, 2021โ 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()
.
- Standard ggplot2 themes:
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.
๐ Changed
- The size of fonts on plot was slightly increased all across the board.
- 0๏ธโฃ The default plot size was increased by 20%, it's now 600x400 px.
- ๐ Deprecated API: all
Theme.xxxBlank()
functions. Please use corresponding parameters intheme()
.
๐ Fixed
-
v3.0.2 Changes
June 09, 2021โ 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
- โฌ๏ธ Upgraded dependencies:
- Kotlin: 1.5.21
- Lets-Plot: 2.1.0 (see Lets-Plot CHANGELOG)
- Apache Batik: 1.14 [#398]
-
v3.0.1 Changes
June 09, 2021โ 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
-
v3.0.0 Changes
June 04, 2021โ Added
In tooltip customization API:
layerTooltips(variables)
- the new parametervariables
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
- [BREAKING CHANGE]: The CDN for delivering the Lets-Plot JavaScript library is now JSDELIVR (was CDNJS).
New URLs:
- Lets-Plot v2.0.3: https://cdn.jsdelivr.net/gh/JetBrains/[email protected]/js-package/distr/lets-plot.min.js
The latest version: https://cdn.jsdelivr.net/gh/JetBrains/lets-plot/js-package/distr/lets-plot.min.js
- The project has been converted to a "multiplatform" project targeting JVM and JS platforms.
To use Lets-Plot Kotlin API in your project, include dependencies:
- JVM:
implementation "org.jetbrains.lets-plot:lets-plot-kotlin-jvm:3.0.0"
- JS:
implementation "org.jetbrains.lets-plot:lets-plot-kotlin-js:3.0.0"
See README_DEV.md for more details.
[BREAKING CHANGE] The JVM artifact
lets-plot-kotlin-api
is no longer deployed: replaced with the equivalentlets-plot-kotlin-jvm
.The artifact
lets-plot-kotlin-api-kernel
renamed tolets-plot-kotlin-kernel
(this change only concerns Kotlin Jupyter Kernel)
๐ 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]
-
v2.0.1 Changes
April 19, 2021๐ 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)