Skip to content

Commit

Permalink
Release v4.6.0
Browse files Browse the repository at this point in the history
  • Loading branch information
alshan committed Jan 10, 2024
1 parent e5c5fda commit 27e0890
Show file tree
Hide file tree
Showing 7 changed files with 95 additions and 84 deletions.
78 changes: 78 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,84 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres
to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). All scales should have the 'format' parameter.

## [4.6.0] - 2024-01-10

### Added

- The `levels` parameter in `asDiscrete()` function [[#931](https://github.com/JetBrains/lets-plot/issues/931)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/factor_levels.ipynb).

- Support for superscript for numbers in scientific notation [[#743](https://github.com/JetBrains/lets-plot/issues/743)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/superscript_exponent.ipynb).

- Sharing of X,Y-scale limits between subplots in `gggrid()` [[#718](https://github.com/JetBrains/lets-plot/issues/718)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/gggrid_scale_share.ipynb).

- `geomSpoke()` [[#738](https://github.com/JetBrains/lets-plot/issues/738)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/geom_spoke.ipynb).

- `scaleXLog2(), scaleYLog2()` [[#922](https://github.com/JetBrains/lets-plot/issues/922)].

- New variables computed by `'count'` and `'count2d'` statistics: `'..sumprop..'`, `'..sumpct..'` [[#936](https://github.com/JetBrains/lets-plot/issues/936)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/new_stat_count_vars.ipynb).

- Support using dictionaries for breaks/labels/values customization in `scaleXxx()` functions [[#169](https://github.com/JetBrains/lets-plot/issues/169)], [[#882](https://github.com/JetBrains/lets-plot/issues/882)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/scale_params_with_dict.ipynb).

- The `lablim` parameter for `scaleXxx()` functions [[#939](https://github.com/JetBrains/lets-plot/issues/939), [#946](https://github.com/JetBrains/lets-plot/issues/946)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/scale_lablim.ipynb).

- `labelText` parameter in `theme()` for annotation text settings [[#930](https://github.com/JetBrains/lets-plot/issues/930)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/theme_label_text.ipynb).



### Changed

- **[BREAKING]** Function `margin()` is deprecated and will be removed in future releases. <br/>
Please replace all existing usages, i.e. `theme(plotMargin=margin(..))` and `elementText(margin=margin(..))` <br/>
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](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/margins.ipynb).

- Geotools: migrate to v30 [[#217](https://github.com/JetBrains/lets-plot-kotlin/issues/217)]. <br/>
**[BREAKING]** GeoTools v30 and up is not backward compatible with v29 and below due to <br/>
renaming of all "org.opengis" packages into "org.geotools.api" ones. <br/>
See release notes: http://geotoolsnews.blogspot.com/2023/09/geotools-30-rc-released.html

- Upgraded Apache Batik to version 1.17 [[#887](https://github.com/JetBrains/lets-plot/issues/887)]


### Fixed

- Jitter reproducibility in geomJitter, positionJitter, positionJitterDodge [[#911](https://github.com/JetBrains/lets-plot/issues/911)].
- Bug with Tooltips in Swing/Batik [[#225](https://github.com/JetBrains/lets-plot-kotlin/issues/225)].
- Facets: order = 0 doesn't work as expected [[#923](https://github.com/JetBrains/lets-plot/issues/923)].
- Enormous CPU / Time/ Memory consumption on some data [[#932](https://github.com/JetBrains/lets-plot/issues/932)].
- gggrid: composite plot is not visible if saved with ggsave [[#942](https://github.com/JetBrains/lets-plot/issues/942)].
- gggrid doesn't override global theme [[#966](https://github.com/JetBrains/lets-plot/issues/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](https://github.com/JetBrains/lets-plot/issues/965)].
- Tooltips: graphical artifacts and bad performance in multi-line plot in Batik [[#967](https://github.com/JetBrains/lets-plot/issues/967)].
- Wrong tooltip position on `geom_segment()` with position adjustment [[#963](https://github.com/JetBrains/lets-plot/issues/963)].
- `geomBoxplot()`: use `outlierAlpha` to boxplot outliers (not apply `alpha`).


## [4.5.0] - 2023-11-06

### Added
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ In this case the latest `library descriptor` will be pulled from the [Kotlin Jup
#### Library Descriptor Parameters

```
%use lets-plot(api=4.5.0, lib=4.1.0, js=4.1.0, isolatedFrame=false)
%use lets-plot(api=4.6.0, lib=4.2.0, js=4.2.0, isolatedFrame=false)
```
- `api` - version of the Lets-Plot Kotlin API.
- `lib` - version of the Lets-Plot Multiplatform (JARs).
Expand Down
12 changes: 6 additions & 6 deletions USAGE_BATIK_JFX_JS.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ plugins {

dependencies {
// Lets-Plot Kotlin API
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.5.0")
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.6.0")
// Lets-Plot Multiplatform (Batik rendering)
implementation("org.jetbrains.lets-plot:lets-plot-batik:4.1.0")
implementation("org.jetbrains.lets-plot:lets-plot-batik:4.2.0")
}
```

Expand All @@ -75,9 +75,9 @@ plugins {

dependencies {
// Lets-Plot Kotlin API
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.5.0")
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.6.0")
// Lets-Plot Multiplatform (JFX Scene rendering)
implementation("org.jetbrains.lets-plot:lets-plot-jfx:4.1.0")
implementation("org.jetbrains.lets-plot:lets-plot-jfx:4.2.0")
}
```

Expand All @@ -95,7 +95,7 @@ kotlin {
named("jsMain") {
dependencies {
// Lets-Plot Kotlin API
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-js:4.5.0")
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-js:4.6.0")
}
}
}
Expand Down Expand Up @@ -193,7 +193,7 @@ val rawSpec = figure.toSpec()
```kotlin
val html: String = PlotHtmlExport.buildHtmlFromRawSpecs(
plotSpec = rawSpec,
scriptUrl = PlotHtmlHelper.scriptUrl(version="4.1.0"),
scriptUrl = PlotHtmlHelper.scriptUrl(version="4.2.0"),
iFrame = true
)
```
Expand Down
4 changes: 2 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,8 @@ if (project.file("local.properties").exists()) {
allprojects {
group = "org.jetbrains.lets-plot"
version = when (name) {
"dokka" -> "4.5.0"
else -> "4.6.0-SNAPSHOT"
"dokka" -> "4.6.0"
else -> "4.6.1-SNAPSHOT"
// else -> "0.0.0-SNAPSHOT" // for local publishing only
}

Expand Down
12 changes: 6 additions & 6 deletions docs/geotools.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ val data: SpatialDataset = featureCollection.toSpatialDataset()

The instance of `SpatialDataset` then can be passed to a plot geometry layer via the `map` or `data` parameters.

```python
```kotlion
letsPlot() + geomPolygon(map = data, fill = "white", color = "gray")
```

Expand Down Expand Up @@ -60,7 +60,7 @@ the artifact `lets-plot-kotlin-geotools` must be included to make the `toSpatial

You can include it into a Gradle project.
```groovy
implementation 'org.jetbrains.lets-plot-kotlin:lets-plot-kotlin-geotools:4.5.0'
implementation 'org.jetbrains.lets-plot-kotlin:lets-plot-kotlin-geotools:4.6.0'
```

[ ![Download](https://api.bintray.com/packages/jetbrains/lets-plot-maven/lets-plot-kotlin-jars/images/download.svg)](https://bintray.com/jetbrains/lets-plot-maven/lets-plot-kotlin-jars/_latestVersion)
Expand All @@ -69,16 +69,16 @@ The `gt-geojson` artifact from GeoTools must be also included.
```groovy
dependencies {
...
implementation "org.jetbrains.lets-plot-kotlin:lets-plot-kotlin-geotools:4.5.0"
implementation "org.geotools:gt-geojson:$geotools_version"
implementation "org.jetbrains.lets-plot-kotlin:lets-plot-kotlin-geotools:4.6.0"
implementation "org.geotools:gt-geojson:[30,)"
...
}
```

The `lets-plot-kotlin-api` artifact v4.5.0 was compiled with GeoTools v29.2. However, it doesn't declare any run-time dependency, so
The `lets-plot-kotlin-api` artifact was compiled with GeoTools v30.1. However, it doesn't declare any run-time dependency, so
you are free to use other versions of the GeoTools toolkit.

> **Note:** Lets-Plot v4.5.0 is not compatible with GeoTools v30 and higher.
> **Note:** Since v4.6.0 Lets-Plot is only compatible with GeoTools v30 and later.
<a id="examples-jvm"></a>
#### JVM-based examples
Expand Down
69 changes: 1 addition & 68 deletions future_changes.md
Original file line number Diff line number Diff line change
@@ -1,74 +1,7 @@
## [4.6.0] - 2024-01-dd
## [4.6.1] - 2024-mm-dd

### Added

- The `levels` parameter in `asDiscrete()` function [[#931](https://github.com/JetBrains/lets-plot/issues/931)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/factor_levels.ipynb).

- Support for superscript for numbers in scientific notation [[#743](https://github.com/JetBrains/lets-plot/issues/743)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/superscript_exponent.ipynb).

- Sharing of X,Y-scale limits between subplots in `gggrid()` [[#718](https://github.com/JetBrains/lets-plot/issues/718)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/gggrid_scale_share.ipynb).

- `geomSpoke()` [[#738](https://github.com/JetBrains/lets-plot/issues/738)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/geom_spoke.ipynb).

- `scaleXLog2(), scaleYLog2()` [[#922](https://github.com/JetBrains/lets-plot/issues/922)].

- New variables computed by `'count'` and `'count2d'` statistics: `'..sumprop..'`, `'..sumpct..'` [[#936](https://github.com/JetBrains/lets-plot/issues/936)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/new_stat_count_vars.ipynb).

- Support using dictionaries for breaks/labels/values customization in `scaleXxx()` functions [[#169](https://github.com/JetBrains/lets-plot/issues/169)], [[#882](https://github.com/JetBrains/lets-plot/issues/882)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/scale_params_with_dict.ipynb).

- The `lablim` parameter for `scaleXxx()` functions [[#939](https://github.com/JetBrains/lets-plot/issues/939), [#946](https://github.com/JetBrains/lets-plot/issues/946)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/scale_lablim.ipynb).

- `labelText` parameter in `theme()` for annotation text settings [[#930](https://github.com/JetBrains/lets-plot/issues/930)].

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/theme_label_text.ipynb).



### Changed

- **[BREAKING]** Function `margin()` is deprecated and will be removed in future releases. <br/>
Please replace all existing usages, i.e. `theme(plotMargin=margin(..))` and `elementText(margin=margin(..))` <br/>
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](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.6.0/margins.ipynb).

- Geotools: migrate to v30 [[#217](https://github.com/JetBrains/lets-plot-kotlin/issues/217)]. <br/>
**[BREAKING]** GeoTools v30 and up is not backward compatible with v29 and below due to <br/>
renaming of all "org.opengis" packages into "org.geotools.api" ones. <br/>
See release notes: http://geotoolsnews.blogspot.com/2023/09/geotools-30-rc-released.html

- Upgraded Apache Batik to version 1.17 [[#887](https://github.com/JetBrains/lets-plot/issues/887)]


### Fixed

- Jitter reproducibility in geomJitter, positionJitter, positionJitterDodge [[#911](https://github.com/JetBrains/lets-plot/issues/911)].
- Bug with Tooltips in Swing/Batik [[#225](https://github.com/JetBrains/lets-plot-kotlin/issues/225)].
- Marginal box-plots aren't shown when requested on more than 1 plot side.
- `gggrid()` doesn't use global theme settings.
- Facets: order = 0 doesn't work as expected [[#923](https://github.com/JetBrains/lets-plot/issues/923)].
- Enormous CPU / Time/ Memory consumption on some data [[#932](https://github.com/JetBrains/lets-plot/issues/932)].
- gggrid: composite plot is not visible if saved with ggsave [[#942](https://github.com/JetBrains/lets-plot/issues/942)].
- gggrid doesn't override global theme [[#966](https://github.com/JetBrains/lets-plot/issues/966)].
- NumberFormat: `g` format doesn't use e-notation for small numbers [[#965](https://github.com/JetBrains/lets-plot/issues/965)].
- Tooltips: graphical artifacts and bad performance in multi-line plot in Batik [[#967](https://github.com/JetBrains/lets-plot/issues/967)].
- Wrong tooltip position on `geom_segment()` with position adjustment [[#963](https://github.com/JetBrains/lets-plot/issues/963)].
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
lets_plot.version=4.2.0
lets_plot_kotlin_api.version=4.6.0-SNAPSHOT
lets_plot_kotlin_api.version=4.6.0

0 comments on commit 27e0890

Please sign in to comment.