Skip to content

Commit

Permalink
Release v4.8.0
Browse files Browse the repository at this point in the history
  • Loading branch information
alshan committed Aug 20, 2024
1 parent fcf3bf3 commit 303461f
Show file tree
Hide file tree
Showing 14 changed files with 296 additions and 180 deletions.
52 changes: 52 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,58 @@ 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.8.0] - 2024-08-20

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

### Added

- Waterfall plot [[#975](https://github.com/JetBrains/lets-plot/issues/975)]:

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

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

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

- Custom legends [[#774](https://github.com/JetBrains/lets-plot/issues/774)]:
- `manualKey` parameter in plot layer
- `layerKey()` function

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

- In legends:
- `title` parameter in `guideLegend()` and `guideColorbar()` functions

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

- override aesthetics in the `guideLegend()` function [[#807](https://github.com/JetBrains/lets-plot/issues/807)]:

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

- `plotTitlePosition` and `plotCaptionPosition` parameters in `theme()` [[#1027](https://github.com/JetBrains/lets-plot/issues/1027)].

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

- `threshold` parameter in `geomHistogram()` [[#1122](https://github.com/JetBrains/lets-plot/issues/1122)].

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

### Changed

- The triangular point shape is now anchored to the data point via the centroid

### Fixed

- ggsave (.svg) transforms geom_text integer to float [[#626](https://github.com/JetBrains/lets-plot/issues/626)].
- Int DataFrame column names are being converted to float string representation [[#901](https://github.com/JetBrains/lets-plot/issues/901)].
- `linetype` = 0 ("blank") should make lines invisible [[#712](https://github.com/JetBrains/lets-plot/issues/712)].
- `geomDensity2D, geomDensity2DFilled`: support weight aesthetic [[#791](https://github.com/JetBrains/lets-plot/issues/791)].
- Discrete axis labels unnecessarily rotate 90 degrees when applying coord system limits.
- Axis title via `labs()` breaks the date-time scale [[#1113](https://github.com/JetBrains/lets-plot/issues/1113)].
- JavaFX IllegalArgumentException: Unsupported attribute `display` in Pane.


## [4.7.3] - 2024-05-30

This release is 100% compatible with [Lets-Plot v 4.3.3](https://github.com/JetBrains/lets-plot/releases/tag/v4.3.3).
Expand Down
53 changes: 19 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ See the "Quickstart" notebook in [Datalore](https://datalore.jetbrains.com/view/
- [Compose Multiplatform](#in-compose-multiplatform)
- [JVM and Kotlin/JS](#in-jvm-js)
- [Documentation](#documentation)
- [What is new in 4.7.0](#new)
- [What is new in 4.8.0](#new)
- [Recent Updates in the Gallery](#recent_gallery_updates)
- [Change Log](#change_log)
- [Code of Conduct](#CoC)
Expand Down Expand Up @@ -103,7 +103,7 @@ In this case the latest `library descriptor` will be pulled from the [Kotlin Jup
#### Library Descriptor Parameters

```
%use lets-plot(api=4.7.3, lib=4.3.3, js=4.3.3, isolatedFrame=false)
%use lets-plot(api=4.8.0, lib=4.4.0, js=4.4.0, isolatedFrame=false)
```
- `api` - version of the Lets-Plot Kotlin API.
- `lib` - version of the Lets-Plot Multiplatform (JARs).
Expand Down Expand Up @@ -134,51 +134,36 @@ Examples of using of the Lets-Plot Kotlin API in JVM and Kotlin/JS applications


<a id="new"></a>
## What is new in 4.7.0
## What is new in 4.8.0

- #### `coordPolar()`
- #### Waterfall Plot
<img src="https://github.com/JetBrains/lets-plot/master/docs/f-24e/images/waterfall.png" alt="f-24e/images/waterfall.png" width="460" height="220">

The polar coordinate system is most commonly used for pie charts, but</br>
it can also be used for constructing **Spider or Radar charts** using the `flat` option.
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.8.0/waterfall_plot.ipynb).

<br>
<img src="https://github.com/JetBrains/lets-plot/master/docs/f-24a/images/polar_coord_pie.png" alt="f-24a/images/polar_coord_pie.png" width="256" height="214">
<img src="https://github.com/JetBrains/lets-plot/master/docs/f-24a/images/radar_chart.png" alt="f-24a/images/radar_chart.png" width="256" height="196">

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

- #### In the `theme()`:

- `panelInset` parameter - primarily used for plots with polar coordinates.
See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.7.0/theme_panel_inset.ipynb).
- #### **`geomBand()`**:
<img src="https://github.com/JetBrains/lets-plot/master/docs/f-24e/images/geom_band.png" alt="f-24e/images/geom_band.png.png" width="615" height="220">

- `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](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.8.0/geom_band.ipynb).

- #### Custom Legends
- `manualKey` parameter in plot layer
- `layerKey()` function
<br>
<img src="https://github.com/JetBrains/lets-plot/master/docs/f-24a/images/curve_annotation.png" alt="f-24a/images/curve_annotation.png" width="338" height="296">

See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.7.0/geom_curve.ipynb).
<img src="https://github.com/JetBrains/lets-plot/master/docs/f-24e/images/custom_legend.png" alt="f-24e/images/custom_legend.png.png" width="294" height="147">

- #### [**UNIQUE**] Visualizing Graph-like Data with `geomSegment()` and `geomCurve()`
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.8.0/manual_legend.ipynb).

- Aesthetics `sizeStart, sizeEnd, strokeStart` and `strokeEnd` enable better alignment of</br>
segments/curves with nodes of the graph by considering the size of the nodes.
- #### Customizing Legends Appearance
Override aesthetics in the `guideLegend()` function.

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

<br>
<img src="https://github.com/JetBrains/lets-plot/master/docs/f-24a/images/graph_simple.png" alt="f-24a/images/graph_simple.png" width="384" height="252">
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.8.0/legend_override_aes.ipynb).

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

- #### The `alphaStroke` Parameter in `geomLabel()`
- #### And More

Use the `alphaStroke` parameter to apply `alpha` to entire `label`. By default, `alpha` is only applied to the label background.
See [CHANGELOG.md](https://github.com/JetBrains/lets-plot-kotlin/blob/master/CHANGELOG.md) for a full list of changes.

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

<a id="recent_gallery_updates"></a>
## Recent Updates in the [Gallery](https://lets-plot.org/kotlin/gallery.html)
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.7.3")
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.8.0")
// Lets-Plot Multiplatform (Batik rendering)
implementation("org.jetbrains.lets-plot:lets-plot-batik:4.3.3")
implementation("org.jetbrains.lets-plot:lets-plot-batik:4.4.0")
}
```

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

dependencies {
// Lets-Plot Kotlin API
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.7.3")
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.8.0")
// Lets-Plot Multiplatform (JFX Scene rendering)
implementation("org.jetbrains.lets-plot:lets-plot-jfx:4.3.3")
implementation("org.jetbrains.lets-plot:lets-plot-jfx:4.4.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.7.3")
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-js:4.8.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.3.3"),
scriptUrl = PlotHtmlHelper.scriptUrl(version="4.4.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.7.4"
else -> "4.7.4-SNAPSHOT"
"dokka" -> "4.8.0"
else -> "4.8.1-SNAPSHOT"
// else -> "0.0.0-SNAPSHOT" // for local publishing only
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
{
"data": {
"text/html": [
" <div id=\"sO8TC9\"></div>\n",
" <div id=\"8r218h\"></div>\n",
" <script type=\"text/javascript\" data-lets-plot-script=\"library\">\n",
" if(!window.letsPlotCallQueue) {\n",
" window.letsPlotCallQueue = [];\n",
Expand All @@ -48,9 +48,9 @@
" var div = document.createElement(\"div\");\n",
" div.style.color = 'darkred';\n",
" div.textContent = 'Error loading Lets-Plot JS';\n",
" document.getElementById(\"sO8TC9\").appendChild(div);\n",
" document.getElementById(\"8r218h\").appendChild(div);\n",
" };\n",
" var e = document.getElementById(\"sO8TC9\");\n",
" var e = document.getElementById(\"8r218h\");\n",
" e.appendChild(script);\n",
" })();\n",
" </script>"
Expand Down Expand Up @@ -283,7 +283,7 @@
{
"data": {
"text/plain": [
"Lets-Plot Kotlin API v.0.0.0-SNAPSHOT. Frontend: Notebook with dynamically loaded JS. Lets-Plot JS v.4.4.0."
"Lets-Plot Kotlin API v.4.8.0. Frontend: Notebook with dynamically loaded JS. Lets-Plot JS v.4.4.0."
]
},
"execution_count": 2,
Expand Down Expand Up @@ -332,7 +332,7 @@
{
"data": {
"text/html": [
" <div id=\"dNWTeQ\"></div>\n",
" <div id=\"xqk8PY\"></div>\n",
" <script type=\"text/javascript\" data-lets-plot-script=\"plot\">\n",
" (function() {\n",
" var plotSpec={\n",
Expand Down Expand Up @@ -388,7 +388,7 @@
"}]\n",
"}\n",
"};\n",
" var plotContainer = document.getElementById(\"dNWTeQ\");\n",
" var plotContainer = document.getElementById(\"xqk8PY\");\n",
" window.letsPlotCall(function() {{\n",
" LetsPlot.buildPlotFromProcessedSpecs(plotSpec, -1, -1, plotContainer);\n",
" }});\n",
Expand Down Expand Up @@ -422,7 +422,7 @@
{
"data": {
"text/html": [
" <div id=\"DNef5C\"></div>\n",
" <div id=\"CrFT3e\"></div>\n",
" <script type=\"text/javascript\" data-lets-plot-script=\"plot\">\n",
" (function() {\n",
" var plotSpec={\n",
Expand Down Expand Up @@ -479,7 +479,7 @@
"}]\n",
"}\n",
"};\n",
" var plotContainer = document.getElementById(\"DNef5C\");\n",
" var plotContainer = document.getElementById(\"CrFT3e\");\n",
" window.letsPlotCall(function() {{\n",
" LetsPlot.buildPlotFromProcessedSpecs(plotSpec, -1, -1, plotContainer);\n",
" }});\n",
Expand Down
Loading

0 comments on commit 303461f

Please sign in to comment.