Skip to content

Commit 303461f

Browse files
committed
Release v4.8.0
1 parent fcf3bf3 commit 303461f

File tree

14 files changed

+296
-180
lines changed

14 files changed

+296
-180
lines changed

CHANGELOG.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,58 @@ 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.8.0] - 2024-08-20
9+
10+
This release is 100% compatible with [Lets-Plot v 4.4.0](https://github.com/JetBrains/lets-plot/releases/tag/v4.4.0).
11+
12+
### Added
13+
14+
- Waterfall plot [[#975](https://github.com/JetBrains/lets-plot/issues/975)]:
15+
16+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.8.0/waterfall_plot.ipynb).
17+
18+
- `geomBand()` [[#733](https://github.com/JetBrains/lets-plot/issues/733)]:
19+
20+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.8.0/us_unemployment.ipynb).
21+
22+
- Custom legends [[#774](https://github.com/JetBrains/lets-plot/issues/774)]:
23+
- `manualKey` parameter in plot layer
24+
- `layerKey()` function
25+
26+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.8.0/manual_legend.ipynb).
27+
28+
- In legends:
29+
- `title` parameter in `guideLegend()` and `guideColorbar()` functions
30+
31+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.8.0/legend_title.ipynb).
32+
33+
- override aesthetics in the `guideLegend()` function [[#807](https://github.com/JetBrains/lets-plot/issues/807)]:
34+
35+
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).
36+
37+
- `plotTitlePosition` and `plotCaptionPosition` parameters in `theme()` [[#1027](https://github.com/JetBrains/lets-plot/issues/1027)].
38+
39+
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).
40+
41+
- `threshold` parameter in `geomHistogram()` [[#1122](https://github.com/JetBrains/lets-plot/issues/1122)].
42+
43+
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).
44+
45+
### Changed
46+
47+
- The triangular point shape is now anchored to the data point via the centroid
48+
49+
### Fixed
50+
51+
- ggsave (.svg) transforms geom_text integer to float [[#626](https://github.com/JetBrains/lets-plot/issues/626)].
52+
- Int DataFrame column names are being converted to float string representation [[#901](https://github.com/JetBrains/lets-plot/issues/901)].
53+
- `linetype` = 0 ("blank") should make lines invisible [[#712](https://github.com/JetBrains/lets-plot/issues/712)].
54+
- `geomDensity2D, geomDensity2DFilled`: support weight aesthetic [[#791](https://github.com/JetBrains/lets-plot/issues/791)].
55+
- Discrete axis labels unnecessarily rotate 90 degrees when applying coord system limits.
56+
- Axis title via `labs()` breaks the date-time scale [[#1113](https://github.com/JetBrains/lets-plot/issues/1113)].
57+
- JavaFX IllegalArgumentException: Unsupported attribute `display` in Pane.
58+
59+
860
## [4.7.3] - 2024-05-30
961

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

README.md

Lines changed: 19 additions & 34 deletions
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.7.0](#new)
70+
- [What is new in 4.8.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(api=4.7.3, lib=4.3.3, js=4.3.3, isolatedFrame=false)
106+
%use lets-plot(api=4.8.0, lib=4.4.0, js=4.4.0, isolatedFrame=false)
107107
```
108108
- `api` - version of the Lets-Plot Kotlin API.
109109
- `lib` - version of the Lets-Plot Multiplatform (JARs).
@@ -134,51 +134,36 @@ Examples of using of the Lets-Plot Kotlin API in JVM and Kotlin/JS applications
134134

135135

136136
<a id="new"></a>
137-
## What is new in 4.7.0
137+
## What is new in 4.8.0
138138

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

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

144-
<br>
145-
<img src="https://raw.githubusercontent.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">
146-
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24a/images/radar_chart.png" alt="f-24a/images/radar_chart.png" width="256" height="196">
147-
148-
See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.7.0/coord_polar.ipynb).
149-
150-
- #### In the `theme()`:
151-
152-
- `panelInset` parameter - primarily used for plots with polar coordinates.
153-
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).
144+
- #### **`geomBand()`**:
145+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24e/images/geom_band.png" alt="f-24e/images/geom_band.png.png" width="615" height="220">
154146

155-
- `panelBorderOntop` parameter - enables the drawing of panel border on top of the plot geoms.
156-
- `panelGridOntop, panelGridOntopX, panelGridOntopY` parameters - enable the drawing of grid lines on top of the plot geoms.
157-
158-
- #### `geomCurve()`
147+
See [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.8.0/geom_band.ipynb).
159148

149+
- #### Custom Legends
150+
- `manualKey` parameter in plot layer
151+
- `layerKey()` function
160152
<br>
161-
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24a/images/curve_annotation.png" alt="f-24a/images/curve_annotation.png" width="338" height="296">
162-
163-
See: [example notebook](https://nbviewer.org/github/JetBrains/lets-plot-kotlin/blob/master/docs/examples/jupyter-notebooks/f-4.7.0/geom_curve.ipynb).
153+
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24e/images/custom_legend.png" alt="f-24e/images/custom_legend.png.png" width="294" height="147">
164154

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

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

170-
- The `spacer` parameter allows for additional manual fine-tuning.
171-
172-
<br>
173-
<img src="https://raw.githubusercontent.com/JetBrains/lets-plot/master/docs/f-24a/images/graph_simple.png" alt="f-24a/images/graph_simple.png" width="384" height="252">
160+
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).
174161

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

177-
- #### The `alphaStroke` Parameter in `geomLabel()`
163+
- #### And More
178164

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

181-
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).
182167

183168
<a id="recent_gallery_updates"></a>
184169
## Recent Updates in the [Gallery](https://lets-plot.org/kotlin/gallery.html)

USAGE_BATIK_JFX_JS.md

Lines changed: 6 additions & 6 deletions
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.7.3")
55+
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.8.0")
5656
// Lets-Plot Multiplatform (Batik rendering)
57-
implementation("org.jetbrains.lets-plot:lets-plot-batik:4.3.3")
57+
implementation("org.jetbrains.lets-plot:lets-plot-batik:4.4.0")
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.7.3")
78+
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-jvm:4.8.0")
7979
// Lets-Plot Multiplatform (JFX Scene rendering)
80-
implementation("org.jetbrains.lets-plot:lets-plot-jfx:4.3.3")
80+
implementation("org.jetbrains.lets-plot:lets-plot-jfx:4.4.0")
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.7.3")
98+
implementation("org.jetbrains.lets-plot:lets-plot-kotlin-js:4.8.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.3.3"),
196+
scriptUrl = PlotHtmlHelper.scriptUrl(version="4.4.0"),
197197
iFrame = true
198198
)
199199
```

build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ if (project.file("local.properties").exists()) {
2525
allprojects {
2626
group = "org.jetbrains.lets-plot"
2727
version = when (name) {
28-
"dokka" -> "4.7.4"
29-
else -> "4.7.4-SNAPSHOT"
28+
"dokka" -> "4.8.0"
29+
else -> "4.8.1-SNAPSHOT"
3030
// else -> "0.0.0-SNAPSHOT" // for local publishing only
3131
}
3232

docs/examples/jupyter-notebooks/f-4.8.0/geom_histogram_threshold.ipynb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
{
2424
"data": {
2525
"text/html": [
26-
" <div id=\"sO8TC9\"></div>\n",
26+
" <div id=\"8r218h\"></div>\n",
2727
" <script type=\"text/javascript\" data-lets-plot-script=\"library\">\n",
2828
" if(!window.letsPlotCallQueue) {\n",
2929
" window.letsPlotCallQueue = [];\n",
@@ -48,9 +48,9 @@
4848
" var div = document.createElement(\"div\");\n",
4949
" div.style.color = 'darkred';\n",
5050
" div.textContent = 'Error loading Lets-Plot JS';\n",
51-
" document.getElementById(\"sO8TC9\").appendChild(div);\n",
51+
" document.getElementById(\"8r218h\").appendChild(div);\n",
5252
" };\n",
53-
" var e = document.getElementById(\"sO8TC9\");\n",
53+
" var e = document.getElementById(\"8r218h\");\n",
5454
" e.appendChild(script);\n",
5555
" })();\n",
5656
" </script>"
@@ -283,7 +283,7 @@
283283
{
284284
"data": {
285285
"text/plain": [
286-
"Lets-Plot Kotlin API v.0.0.0-SNAPSHOT. Frontend: Notebook with dynamically loaded JS. Lets-Plot JS v.4.4.0."
286+
"Lets-Plot Kotlin API v.4.8.0. Frontend: Notebook with dynamically loaded JS. Lets-Plot JS v.4.4.0."
287287
]
288288
},
289289
"execution_count": 2,
@@ -332,7 +332,7 @@
332332
{
333333
"data": {
334334
"text/html": [
335-
" <div id=\"dNWTeQ\"></div>\n",
335+
" <div id=\"xqk8PY\"></div>\n",
336336
" <script type=\"text/javascript\" data-lets-plot-script=\"plot\">\n",
337337
" (function() {\n",
338338
" var plotSpec={\n",
@@ -388,7 +388,7 @@
388388
"}]\n",
389389
"}\n",
390390
"};\n",
391-
" var plotContainer = document.getElementById(\"dNWTeQ\");\n",
391+
" var plotContainer = document.getElementById(\"xqk8PY\");\n",
392392
" window.letsPlotCall(function() {{\n",
393393
" LetsPlot.buildPlotFromProcessedSpecs(plotSpec, -1, -1, plotContainer);\n",
394394
" }});\n",
@@ -422,7 +422,7 @@
422422
{
423423
"data": {
424424
"text/html": [
425-
" <div id=\"DNef5C\"></div>\n",
425+
" <div id=\"CrFT3e\"></div>\n",
426426
" <script type=\"text/javascript\" data-lets-plot-script=\"plot\">\n",
427427
" (function() {\n",
428428
" var plotSpec={\n",
@@ -479,7 +479,7 @@
479479
"}]\n",
480480
"}\n",
481481
"};\n",
482-
" var plotContainer = document.getElementById(\"DNef5C\");\n",
482+
" var plotContainer = document.getElementById(\"CrFT3e\");\n",
483483
" window.letsPlotCall(function() {{\n",
484484
" LetsPlot.buildPlotFromProcessedSpecs(plotSpec, -1, -1, plotContainer);\n",
485485
" }});\n",

0 commit comments

Comments
 (0)