Skip to content

Commit 9c9cff3

Browse files
committed
Release v4.10.0
1 parent 0ad8c67 commit 9c9cff3

File tree

7 files changed

+123
-71
lines changed

7 files changed

+123
-71
lines changed

CHANGELOG.md

+88
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,94 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres
66
to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). All scales should have the 'format' parameter.
77

8+
## [4.10.0] - 2025-03-20
9+
10+
This release is 100% compatible with Lets-Plot [v 4.6.1](https://github.com/JetBrains/lets-plot/releases/tag/v4.6.1),
11+
GeoTools [v 32.1](https://github.com/geotools/geotools/releases/tag/32.1)
12+
13+
### Added
14+
15+
- Grouping plots:
16+
- `ggbunch()` function: combining plots with custom layout.
17+
18+
See demos:
19+
- [Magnifier Inset Effect](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/magnifier_inset.ipynb).
20+
- [Map of Kotlin Island with Inset](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/ggbunch_kotlin_isl.ipynb).
21+
22+
- Support for plot **title, subtitle, caption, margins** and **insets** in `gggrid()` and `ggbunch()`.
23+
24+
- Geometries:
25+
- `geomHex()` [[#556](https://github.com/JetBrains/lets-plot/issues/556)].
26+
27+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/geom_hex.ipynb).
28+
29+
- Parameters
30+
- `widthUnit` in `geomErrorBar()`, `geomBoxplot()`, `geomCrossbar()` [[#1288](https://github.com/JetBrains/lets-plot/issues/1288)].
31+
- `widthUnit` and `heightUnit` in `geomTile()` and `geomHex()`.
32+
33+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/param_width_unit.ipynb).
34+
35+
- Parameters `start` and `direction` in `geomPie()` [[#1280](https://github.com/JetBrains/lets-plot/issues/1280)].
36+
37+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/geom_pie_params.ipynb).
38+
39+
- Texts and labels:
40+
- `hjust` and `vjust` parameters for axis labels [[#1227](https://github.com/JetBrains/lets-plot/issues/1227)],[[#1230](https://github.com/JetBrains/lets-plot/issues/1230)].
41+
42+
See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/axis_label_justification.ipynb).
43+
44+
- Multiline support for axis labels [[#948](https://github.com/JetBrains/lets-plot/issues/948)].
45+
46+
See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/multiline_axis_labels.ipynb).
47+
48+
- Markdown support for plot **title**, **subtitle**, **caption**, and axis labels [[#1256](https://github.com/JetBrains/lets-plot/issues/1256)].
49+
50+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/markdown.ipynb).
51+
52+
- In the `nudge` position adjustment -
53+
the ability to specify absolute shift values for `nudge`:
54+
- `unit` parameter in `positionNudge()`.
55+
- `nudgeUnit` parameter in `geomText()` and `geomLabel()`
56+
57+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/position_nudge_unit.ipynb).
58+
59+
- Theme:
60+
- Parameters `legendTicks` and `legendTicksLength` for fine-grained control over colorbar tick marks [[#1262](https://github.com/JetBrains/lets-plot/issues/1262)].
61+
62+
See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/theme_legend_ticks.ipynb).
63+
64+
- Aliases for transparent color: `""` (blank string), `"blank"` and `"transparent"` color [[#1281](https://github.com/JetBrains/lets-plot/issues/1281)].
65+
66+
### Changed
67+
68+
- [**DEPRECATED**] class `GGBunch` is deprecated. Please use `ggbunch()` function instead.
69+
- [**BREAKING**] The `height` parameter has been deprecated for the `geomErrorBar`.
70+
- Axis breaks: the minimum distance between axis labels was reduced to avoid unsuitable layouts.
71+
- Axis breaks: changed default `lower_exp_bound` to -7 and `upper_exp_bound` to 6 (same as in `theme(...)`).
72+
- Axis labels: changed default justification for rotated labels.
73+
- Axis labels: changed orientation of automatic vertical labels.
74+
- [**BREAKING**] geoms `tile, bin2d, contour, contourf, density2d, density2df` : default coordinate system changed from 'fixed' to 'cartesian'.
75+
- [**BREAKING**] tiles in `geomBin2d()` are sized according to the `binwidth` value, not the maximum possible.
76+
- [**BREAKING**] In Lets-Plot JS API v 4.6.0 (only Lets-Plot/JS users): signature of "buildPlotFromXXX" functions changed, see current Kotlin/JS declarations:
77+
- [`buildPlotFromRawSpecs()`](https://github.com/JetBrains/lets-plot/blob/38d0b24ecb3c74420814da8a66a91819d84bedd7/js-package/src/jsMain/kotlin/MonolithicJs.kt#L81)
78+
- [`buildPlotFromProcessedSpecs()`](https://github.com/JetBrains/lets-plot/blob/38d0b24ecb3c74420814da8a66a91819d84bedd7/js-package/src/jsMain/kotlin/MonolithicJs.kt#L158)
79+
- [**BREAKING**] In Lets-Plot v 4.6.0, Maven artifacts:
80+
- artifacts `platf-awt`, `platf-batik`, `platf-jfx-swing` are no longer published with a "-jvm" suffix.
81+
Before, these artifacts could be used in dependencies either with or without the "-jvm" suffix. Now only without suffix.
82+
- artifact "org.jetbrains.lets-plot:deprecated-in-v4-jvm" is removed.
83+
84+
### Fixed
85+
- Incorrectly rendered Area chart [[#1295](https://github.com/JetBrains/lets-plot/issues/1295)].
86+
- Tooltip should not cover and hide the geometry that it provides info for [[#1275](https://github.com/JetBrains/lets-plot/issues/1275)].
87+
- General purpose `scaleContinuous`: can't use the `expand` parameter [[#1285](https://github.com/JetBrains/lets-plot/issues/1285)].
88+
- Error when using `stat='summary'` if the data contains NaN values [[#1301](https://github.com/JetBrains/lets-plot/issues/1301)].
89+
- Broken `plotBackground` in `gggrid` [[#1124](https://github.com/JetBrains/lets-plot/issues/1124)].
90+
- `plotBackground` not inheriting from `rect` [[#1278](https://github.com/JetBrains/lets-plot/issues/1278)]
91+
- `gggrid`: allow title and other labels for the entire figure [[#715](https://github.com/JetBrains/lets-plot/issues/715)].
92+
- `ggbunch`: overall title [[#321](https://github.com/JetBrains/lets-plot/issues/321)].
93+
- Expand discrete axis according to tile size with `geomTile` [[#1284](https://github.com/JetBrains/lets-plot/issues/1284)].
94+
95+
896
## [4.9.3] - 2024-12-16
997

1098
This release is 100% compatible with Lets-Plot [v 4.5.2](https://github.com/JetBrains/lets-plot/releases/tag/v4.5.2),

README.md

+22-23
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ See the "Quickstart" notebook in [Datalore](https://datalore.jetbrains.com/view/
6767
- [Compose Multiplatform](#in-compose-multiplatform)
6868
- [JVM and Kotlin/JS](#in-jvm-js)
6969
- [Documentation](#documentation)
70-
- [What is new in 4.9.0](#new)
70+
- [What is new in 4.10.0](#new)
7171
- [Recent Updates in the Gallery](#recent_gallery_updates)
7272
- [Change Log](#change_log)
7373
- [Code of Conduct](#CoC)
@@ -103,7 +103,7 @@ In this case the latest `library descriptor` will be pulled from the [Kotlin Jup
103103
#### Library Descriptor Parameters
104104

105105
```
106-
%use lets-plot(v=4.9.0, isolatedFrame=false)
106+
%use lets-plot(v=4.10.0, isolatedFrame=false)
107107
```
108108
- `v` - version of the Lets-Plot Kotlin API.
109109
- `isolatedFrame` - If `false`: load JS just once per notebook (default in Jupyter).
@@ -132,39 +132,38 @@ Examples of using of the Lets-Plot Kotlin API in JVM and Kotlin/JS applications
132132

133133

134134
<a id="new"></a>
135-
## What is new in 4.9.0
135+
## What is new in 4.10.0
136136

137-
- #### Panning and Zooming
138-
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24g/images/ggtb.png" alt="f-24g/images/ggtb.png" width="300" height="134">
137+
- #### Markdown Support in *Title*, *Subtitle*, *Caption*, and Axis Labels
138+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-25a/images/markdown.png" alt="Markdown Support" width="400" height="237">
139139

140-
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.9.0/interact_pan_zoom.ipynb).
140+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/markdown.ipynb).
141141

142-
- #### Clickable Links
143-
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24g/images/lp_verse.png" alt="f-24g/images/lp_verse.png" width="400" height="270">
142+
- #### Support for Multiline Axis Labels, Text Justification in Axis Labels
143+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-25a/images/multiline_axis_labels.png" alt="Multiline Axis Labels" width="400" height="275">
144144

145-
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/tree/master/docs/examples/jupyter-notebooks/f-4.9.0/lp_verse.ipynb).
145+
See examples: [multiline axis labels](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/multiline_axis_labels.ipynb),
146+
[axis label justification](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/axis_label_justification.ipynb).
146147

147-
- #### LaTeX Support: Subscript, Superscript, Greek Letters and Special Characters
148-
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24g/images/latex.png" alt="f-24g/images/latex.png" width="300" height="227">
148+
- #### `geomHex()` Geometry
149+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-25a/images/geom_hex.png" alt="Geometry Hex" width="370" height="296">
149150

150-
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/tree/master/docs/examples/jupyter-notebooks/f-4.9.0/latex_support.ipynb).
151+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/geom_hex.ipynb).
151152

152-
- #### Compact Scientific Notation Formatting
153-
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24g/images/compact_exp.png" alt="f-24g/images/compact_exp.png" width="400" height="174">
153+
- #### `ggbunch()` Function: Combining Plots with Custom Layout
154+
It replaces the deprecated `GGBunch` class. <br/>
155+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-25a/images/magnifier_inset.png" alt="Magnifier Inset" width="400" height="251">
154156

155-
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/tree/master/docs/examples/jupyter-notebooks/f-4.9.0/superscript_exponent.ipynb).
157+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/magnifier_inset.ipynb).
156158

157-
- #### QQ-Plot: Marginal Distributions
158-
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24g/images/gg_marins.png" alt="f-24g/images/gg_marins.png" width="400" height="249">
159+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot-kotlin/master/docs/examples/jupyter-notebooks/f-4.10.0/ggbunch_kotlin_isl.png" alt="Map of Kotlin Isl." width="400" height="254">
159160

160-
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/tree/master/docs/examples/jupyter-notebooks/f-4.9.0/qq_plot_marginal.ipynb).
161+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/ggbunch_kotlin_isl.ipynb).
161162

162-
- #### More Theme Settings
163-
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24g/images/theme_legend_scheme.png" alt="f-24g/images/theme_legend_scheme.png" width="400" height="320">
163+
- #### Parameters `start` and `direction` in `geom_pie()` Geometry
164+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-25a/images/geom_pie_params.png" alt="Pie Params" width="400" height="119">
164165

165-
See examples: [legend margins](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/tree/master/docs/examples/jupyter-notebooks/f-4.9.0/theme_legend_margins.ipynb),
166-
[legend key](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/tree/master/docs/examples/jupyter-notebooks/f-4.9.0/theme_legend_key.ipynb),
167-
[facet strip](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/tree/master/docs/examples/jupyter-notebooks/f-4.9.0/theme_facet_strip_xy.ipynb).
166+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/geom_pie_params.ipynb).
168167

169168

170169
- #### And More

USAGE_BATIK_JFX_JS.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ plugins {
5252

5353
dependencies {
5454
// Lets-Plot Kotlin API
55-
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.9.3")
55+
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.10.0")
5656
// Lets-Plot Multiplatform (Batik rendering)
57-
implementation("org.jetbrains.lets-plot:lets-plot-batik:4.5.2")
57+
implementation("org.jetbrains.lets-plot:lets-plot-batik:4.6.1")
5858
}
5959
```
6060

@@ -75,9 +75,9 @@ plugins {
7575

7676
dependencies {
7777
// Lets-Plot Kotlin API
78-
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.9.3")
78+
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.10.0")
7979
// Lets-Plot Multiplatform (JFX Scene rendering)
80-
implementation("org.jetbrains.lets-plot:lets-plot-jfx:4.5.2")
80+
implementation("org.jetbrains.lets-plot:lets-plot-jfx:4.6.1")
8181
}
8282
```
8383

@@ -95,7 +95,7 @@ kotlin {
9595
named("jsMain") {
9696
dependencies {
9797
// Lets-Plot Kotlin API
98-
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-js:4.9.3")
98+
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-js:4.10.0")
9999
}
100100
}
101101
}
@@ -193,7 +193,7 @@ val rawSpec = figure.toSpec()
193193
```kotlin
194194
val html: String = PlotHtmlExport.buildHtmlFromRawSpecs(
195195
plotSpec = rawSpec,
196-
scriptUrl = PlotHtmlHelper.scriptUrl(version="4.5.2"),
196+
scriptUrl = PlotHtmlHelper.scriptUrl(version="4.6.1"),
197197
iFrame = true
198198
)
199199
```

build.gradle.kts

+2-3
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,8 @@ if (project.file("local.properties").exists()) {
3333
allprojects {
3434
group = "org.jetbrains.lets-plot"
3535
version = when (name) {
36-
"dokka" -> "4.9.4"
37-
// else -> "4.10.0-SNAPSHOT"
38-
else -> "4.10.0-rc1"
36+
"dokka" -> "4.10.0"
37+
else -> "4.10.1-SNAPSHOT"
3938
// else -> "0.0.0-SNAPSHOT" // for local publishing only
4039
}
4140

devdocs/RELEASE.md

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
### Make Version
44

55
##### 1. Update CHANGELOG.md file
6+
Also update "What's New" section in the README.md file.
67

78
##### 2. Set release version
89

future_changes.md

+3-38
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,10 @@
1-
## [4.9.4] - 2025-mm-dd
1+
## [4.10.1] - 2025-mm-dd
22

3-
This release is 100% compatible with Lets-Plot [v 4.5.2](https://github.com/JetBrains/lets-plot/releases/tag/v4.5.2),
4-
GeoTools [v 32.1](https://github.com/geotools/geotools/releases/tag/32.0)
3+
This release is 100% compatible with Lets-Plot [v 4.6.1](https://github.com/JetBrains/lets-plot/releases/tag/v4.6.1),
4+
GeoTools [v 32.1](https://github.com/geotools/geotools/releases/tag/32.1)
55

66
### Added
77

8-
- Geometries:
9-
10-
- `geomHex()` [[#556](https://github.com/JetBrains/lets-plot/issues/556)].
11-
12-
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/geom_hex.ipynb).
13-
14-
- Parameters `widthUnit` and `heightUnit` in `geomErrorBar()`, `geomBoxplot()`, `geomCrossbar()`, `geomTile()` and `geomHex()` [[#1288](https://github.com/JetBrains/lets-plot/issues/1288)]:
15-
16-
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/param_width_unit.ipynb).
17-
18-
- Parameters `start` and `direction` in `geomPie()` [[#1280](https://github.com/JetBrains/lets-plot/issues/1280)].
19-
20-
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/geom_pie_params.ipynb).
21-
22-
- Texts and labels:
23-
24-
- `hjust` and `vjust` parameters for axis labels [[#1227](https://github.com/JetBrains/lets-plot/issues/1227)],[[#1230](https://github.com/JetBrains/lets-plot/issues/1230)].
25-
26-
See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/axis_label_justification.ipynb).
27-
28-
- multiline support for axis labels [[#948](https://github.com/JetBrains/lets-plot/issues/948)].
29-
30-
See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/multiline_axis_labels.ipynb).
31-
32-
- Markdown support for plot **title**, **subtitle**, **caption**, and axis labels [[#1256](https://github.com/JetBrains/lets-plot/issues/1256)].
33-
34-
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/markdown.ipynb).
35-
- In the `nudge` position adjustment -
36-
the ability to specify absolute shift values for `nudge`:
37-
- `unit` parameter in `positionNudge()`.
38-
- `nudgeUnit` parameter in `geomText()` and `geomLabel()`
39-
40-
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.10.0/position_nudge_unit.ipynb).
418
### Changed
429

43-
- [**BREAKING**] The `height` parameter has been deprecated for the `geomErrorBar`.
44-
4510
### Fixed
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
lets_plot.version=4.6.1
2-
lets_plot_kotlin_api.version=4.10.0-rc1
2+
lets_plot_kotlin_api.version=4.10.0

0 commit comments

Comments
 (0)