Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
README.md | 2025-07-25 | 7.1 kB | |
v4.11.0 source code.tar.gz | 2025-07-25 | 32.6 MB | |
v4.11.0 source code.zip | 2025-07-25 | 33.4 MB | |
Totals: 3 Items | 66.0 MB | 0 |
[4.11.0] - 2025-07-25
This release is 100% compatible with Lets-Plot v 4.7.0, GeoTools v 33.2
Added
- Time Series Plotting [#278], [discussion], [#678], [LPK-129]:
- Support temporal data types from
kotlinx.datetime
,java.time
, andjava.util
. - Support for timezone-aware
java.time.ZonedDateTime
andjava.time.OffsetDateTime
objects.
See examples: - Date-time cookbook - Bitcoin trading.
-
Geometries:
-
geomSina()
[#1298].See: example notebook.
-
geomTextRepel()
andgeomLabelRepel()
[#1092].See: example notebook.
-
Layer Labels (Annotations):
-
Support in
geomCrossbar()
See: example notebook.
-
Support in
waterfallPlot()
viarelativeLabels
andabsoluteLabels
parameters.See: example notebook.
-
New
inheritColor()
option in annotations' configuration (see example notebooks above) -
waterfallPlot()
- support for combining waterfall bars with other geometry layers [#1344].
See: example notebook.
-
Plot Layout:
-
New
axisTextSpacing
,axisTextSpacingX
, andaxisTextSpacingY
parameters intheme()
to control spacing between axis ticks and labels. -
See new Plot Layout Diagrams showing various layout options and their effects on plot appearance.
-
More variants to specify a color by name:
-
all HTML/CSS colors;
- various naming styles, e.g.,
"dark-gray"
,"darkgrey"
,"dark_grey"
,"DARKGRAY"
, etc.; - grayscale colors from
"gray0"
(black) to"gray100"
(white);
See the complete list of named colors.
sizeUnit
parameter ingeomPoint()
,geomText/Label()
andgeomPie()
accepts two new values:"min"
and"max"
[#260].
"min"
sets the size unit to the smaller of the unit steps along the x and y axes, while "max"
sets it to the larger.
This allows for more flexible relative sizing of points, pies and text in plots.
See: example notebook.
Changed
- Continuous data on discrete scales:
Continuous data when used with discrete positional scales is no longer transformed to discrete data.
Instead, it remains continuous, allowing for precise positioning of continuous elements relative to discrete ones.
This resolves issues where combining discrete and continuous data in the same plot was difficult or impossible: [#1279].
See: example notebook.
[!TIP] New way of handling continuous data on discrete scales could potentially break existing plots. If you want to restore a broken plot to its original form, you can use the
asDiscrete()
function to annotate continuous data as discrete.
- [BREAKING]
geomBoxplot()
: when y-oriented, it now uses aestheticsxlower
/xmiddle
/xupper
instead oflower
/middle
/upper
[#1319]. - [BREAKING]
waterfallPlot()
: special "flow_type" value forlabel=elementText(color=...)
replaced with "inherit". Seelabel
in the documentation. - [DEPRECATED] The
positionDodgeV()
function and the"dodgev"
value for theposition
parameter are deprecated and will be removed in future releases. - Plot layout: reduced margins and spacing for title, caption, axes, and legend.
- Updated RGB values for
"lightgray"
and"green"
. To restore the previous colors, use"gray75"
and"lime"
, respectively. waterfallPlot()
: the appearance of the legend has been improved.geomViolin()
: tooltips are not shown in the centerline of the violin ifshowHalf != 0
.geomCrossbar()
: the midline is not shown in the legend whenfatten
is set to 0, or when there is no mapping for it.geomPointrange()
: the midpoint will not be drawn if they
aesthetic is set tonull
.geomBand()
: thealpha
aesthetic only affects the inner part of the geometry, as ingeomRect()
.geomBand()
: show tooltip over the whole band, not just at the edges.
Fixed
- AWT: plot prevents wheel events from bubbling up to the parent component.
geomBoxplot
: unable to draw a y-oriented plot withstat = Stat.identity
[#1319].- Can't add a layer which uses continuous data to a plot where other layers use discrete input [#1323].
- Multiline legend labels were not vertically centered with their keys [#1331].
- Poor alignment in legend between columns [#1332].
- Ordered data was re-ordered by
geomBoxplot
[#1342]. - Sec: CVE-2024-47554 (commons-io) [#1231]
- java.util.zip.ZipException: duplicate entry: letsPlotKotlinAPI/version.properties [#279]