Skip to content

Commit 130891f

Browse files
Updated version v4.9.0
1 parent d5536fa commit 130891f

5 files changed

Lines changed: 116 additions & 109 deletions

File tree

CHANGELOG.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,118 @@ 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/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [4.9.0] - 2026-03-11
9+
10+
### Added
11+
12+
- Python 3.14 support.
13+
14+
- Python 3.14 free-threading support [[#1454](https://github.com/JetBrains/lets-plot/issues/1454)].
15+
16+
17+
- Plot Annotations:
18+
19+
- New `labels` parameter in `geom_smooth()` designed to display statistical summaries of the fitted model directly on the plot. \
20+
This parameter accepts a `smooth_labels()` object, which provides access to model-specific variables like $R^2$, the regression equation and others.
21+
22+
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/smooth_summary.html).
23+
24+
- **Plot tags**. A tag can be specified via `labs(tag=...)` and styled using theme parameters [[#1407](https://github.com/JetBrains/lets-plot/issues/1407)].
25+
26+
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/plot_tags.html) and updated [plot layout scheme](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/plot_layout_scheme.html).
27+
28+
- Plot tags customization parameters in `theme()`:
29+
- `plot_tag` - sets the tag style via `element_text()`.
30+
- `plot_tag_location` - specifies the area used for positioning the tag.
31+
- `plot_tag_position` - specifies the position of the tag within the selected area.
32+
- `plot_tag_prefix` - text added before the tag value.
33+
- `plot_tag_suffix` - text added after the tag value.
34+
35+
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/plot_tags.html).
36+
37+
38+
- Geometries:
39+
- New `geom_bracket()`, `geom_bracket_dodge()` [[#1114](https://github.com/JetBrains/lets-plot/issues/1114)].
40+
41+
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/geom_bracket.html).
42+
43+
- `geom_imshow()`:
44+
- Support for custom colormaps [[#780](https://github.com/JetBrains/lets-plot/issues/780)].
45+
- New `cguide` parameter: use to customize the colorbar for grayscale images.
46+
47+
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/image_custom_cmap.html).
48+
49+
50+
- Color Scales:
51+
- New `palette()` method for color scales: generates a list of hex color codes that can be used with `scale_color_manual()` to maintain consistent colors across multiple plots [[#1444](https://github.com/JetBrains/lets-plot/issues/1444)].
52+
53+
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/scale_color_palette.html).
54+
55+
- New `overflow` parameter in `scale_color_brewer()` / `scale_fill_brewer()`: controls how colors are generated when more colors are needed than the palette provides. \
56+
Options: `'interpolate'` (`'i'`), `'cycle'` (`'c'`), `'generate'` (`'g'`).
57+
58+
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/scale_brewer_overflow.html).
59+
60+
61+
- Positional Scales:
62+
- New `break_width` parameter that specifies a fixed distance between axis breaks.
63+
64+
See examples:
65+
- [datetime scale](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/scale_break_width_datetime.html)
66+
- [time (duration) scale](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/scale_break_width_duration.html)
67+
- [log10 scale](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/scale_break_width_log10.html)
68+
69+
- Support for axis minor ticks via `axis_minor_ticks` and `axis_minor_ticks_length` parameters in `theme()` [[#1379](https://github.com/JetBrains/lets-plot/issues/1379)].
70+
71+
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/axis_minor_ticks.html).
72+
73+
74+
- `gggrid()`: interactive pan/zoom now propagates across subplots with shared axes (`sharex`/`sharey`) [[#1413](https://github.com/JetBrains/lets-plot/issues/1413)].
75+
76+
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/gggrid_scale_share_zoom.html).
77+
78+
79+
### Changed
80+
81+
- [**BREAKING**]: ColorBrewer palettes: changed default behavior when the requested number of colors exceeds the palette's maximum size. \
82+
Now defaults to `'interpolate'` for sequential/diverging palettes and `'generate'` for qualitative palettes. \
83+
Previously, depending on the palette type, this either resulted in duplicate colors or random additional colors. \
84+
Use the new `overflow` parameter to explicitly control this behavior.
85+
- Reduced import overhead by nearly two orders of magnitude (from ~1.2s down to ~0.02s) [[#1469](https://github.com/JetBrains/lets-plot/issues/1469)].
86+
- Missing values in `geom_area_ridges()` create gaps in geometries instead of being interpolated over.
87+
- Discrete color scales (Brewer, Manual) now produce a `colorbar` guide when used with continuous data. \
88+
Previously they produced a `legend` guide regardless of the data type.
89+
90+
91+
- Changes affecting users on the JVM platform:
92+
- Upgraded the Kotlin version to 2.2.20 (was 1.9.25).
93+
- New artifact for JVM Swing applications: `org.jetbrains.lets-plot:lets-plot-swing`. \
94+
This artifact provides the `SwingPlotPanel` class, which can be used to display plots in Swing applications instead of the now-obsolete `DefaultPlotPanelBatik`. \
95+
For details, see the [jvm-swing-app](https://github.com/alshan/lets-plot-mini-apps/tree/main/jvm-swing-app) example in the "lets-plot-mini-apps" repository.
96+
- [**BREAKING**]: Removed JavaFX artifacts. \
97+
The `org.jetbrains.lets-plot:lets-plot-jfx` artifact is no longer available. \
98+
Replace it with new `org.jetbrains.lets-plot:lets-plot-swing` dependency and use `SwingPlotPanel` instead of `DefaultPlotPanelJfx`. \
99+
For details, see the [jvm-javafx-app](https://github.com/alshan/lets-plot-mini-apps/tree/main/jvm-javafx-app) example in the "lets-plot-mini-apps" repository.
100+
- [**BREAKING**]: Removed `plot-image-export` module. \
101+
The `org.jetbrains.lets-plot:lets-plot-image-export` artifact is no longer available. \
102+
The `PlotImageExport` utility has been moved to the `platf-awt` module. \
103+
The required `org.jetbrains.lets-plot:platf-awt` dependency is likely already present in your project.
104+
105+
106+
### Fixed
107+
108+
- Drop commons-io dependency [[#1421](https://github.com/JetBrains/lets-plot/issues/1421)].
109+
- Unexpected replacement of double curly brackets with a single curly bracket [[#1433](https://github.com/JetBrains/lets-plot/issues/1433)].
110+
- Upgrade to a newer version of ws [[#1150](https://github.com/JetBrains/lets-plot/issues/1150)].
111+
- geom_imshow: unclear error message when mixing transparencies [[#1088](https://github.com/JetBrains/lets-plot/issues/1088)].
112+
- geom_imshow and scale_y_reverse [[#1210](https://github.com/JetBrains/lets-plot/issues/1210)].
113+
- Nice to be able to get a list of colors from a color scale object [[#1444](https://github.com/JetBrains/lets-plot/issues/1444)].
114+
- Allow tooltips param to accept list [[#1455](https://github.com/JetBrains/lets-plot/issues/1455)].
115+
- Allow grouped tooltips for plots with multiple univariate geoms [[#1460](https://github.com/JetBrains/lets-plot/issues/1460)].
116+
- Fixed a regression in geom_text_repel() / geom_label_repel(): points with empty labels were incorrectly skipped \
117+
before building the repel obstacle set, so they were not included in collision avoidance and labels could overlap \
118+
dense point clusters.
119+
8120
## [4.8.2] - 2026-12-19
9121

10122
### Fixed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ val letsPlotTaskGroup by extra { "lets-plot" }
4242

4343
allprojects {
4444
group = "org.jetbrains.lets-plot"
45-
version = "4.9.1-SNAPSHOT" // see also: python-package/lets_plot/_version.py
45+
version = "4.9.0" // see also: python-package/lets_plot/_version.py
4646
// version = "0.0.0-SNAPSHOT" // for local publishing only
4747

4848
// Generate JVM 1.8 bytecode

future_changes.md

Lines changed: 1 addition & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,112 +1,7 @@
1-
## [4.8.3] - 2026-03-dd
1+
## [4.9.1] - 2026-mm-dd
22

33
### Added
44

5-
- Python 3.14 support.
6-
7-
- Python 3.14 free-threading support [[#1454](https://github.com/JetBrains/lets-plot/issues/1454)].
8-
9-
10-
- Plot Annotations:
11-
12-
- New `labels` parameter in `geom_smooth()` designed to display statistical summaries of the fitted model directly on the plot. \
13-
This parameter accepts a `smooth_labels()` object, which provides access to model-specific variables like $R^2$, the regression equation and others.
14-
15-
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/smooth_summary.html).
16-
17-
- **Plot tags**. A tag can be specified via `labs(tag=...)` and styled using theme parameters [[#1407](https://github.com/JetBrains/lets-plot/issues/1407)].
18-
19-
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/plot_tags.html) and updated [plot layout scheme](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/plot_layout_scheme.html).
20-
21-
- Plot tags customization parameters in `theme()`:
22-
- `plot_tag` - sets the tag style via `element_text()`.
23-
- `plot_tag_location` - specifies the area used for positioning the tag.
24-
- `plot_tag_position` - specifies the position of the tag within the selected area.
25-
- `plot_tag_prefix` - text added before the tag value.
26-
- `plot_tag_suffix` - text added after the tag value.
27-
28-
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/plot_tags.html).
29-
30-
31-
- Geometries:
32-
- New `geom_bracket()`, `geom_bracket_dodge()` [[#1114](https://github.com/JetBrains/lets-plot/issues/1114)].
33-
34-
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/geom_bracket.html).
35-
36-
- `geom_imshow()`:
37-
- Support for custom colormaps [[#780](https://github.com/JetBrains/lets-plot/issues/780)].
38-
- New `cguide` parameter: use to customize the colorbar for grayscale images.
39-
40-
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/image_custom_cmap.html).
41-
42-
43-
- Color Scales:
44-
- New `palette()` method for color scales: generates a list of hex color codes that can be used with `scale_color_manual()` to maintain consistent colors across multiple plots [[#1444](https://github.com/JetBrains/lets-plot/issues/1444)].
45-
46-
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/scale_color_palette.html).
47-
48-
- New `overflow` parameter in `scale_color_brewer()` / `scale_fill_brewer()`: controls how colors are generated when more colors are needed than the palette provides. \
49-
Options: `'interpolate'` (`'i'`), `'cycle'` (`'c'`), `'generate'` (`'g'`).
50-
51-
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/scale_brewer_overflow.html).
52-
53-
54-
- Positional Scales:
55-
- New `break_width` parameter that specifies a fixed distance between axis breaks.
56-
57-
See examples:
58-
- [datetime scale](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/scale_break_width_datetime.html)
59-
- [time (duration) scale](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/scale_break_width_duration.html)
60-
- [log10 scale](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/scale_break_width_log10.html)
61-
62-
- Support for axis minor ticks via `axis_minor_ticks` and `axis_minor_ticks_length` parameters in `theme()` [[#1379](https://github.com/JetBrains/lets-plot/issues/1379)].
63-
64-
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/axis_minor_ticks.html).
65-
66-
67-
- `gggrid()`: interactive pan/zoom now propagates across subplots with shared axes (`sharex`/`sharey`) [[#1413](https://github.com/JetBrains/lets-plot/issues/1413)].
68-
69-
See: [example notebook](https://raw.githack.com/JetBrains/lets-plot/master/docs/f-26a/gggrid_scale_share_zoom.html).
70-
71-
72-
735
### Changed
746

75-
- [**BREAKING**]: ColorBrewer palettes: changed default behavior when the requested number of colors exceeds the palette's maximum size. \
76-
Now defaults to `'interpolate'` for sequential/diverging palettes and `'generate'` for qualitative palettes. \
77-
Previously, depending on the palette type, this either resulted in duplicate colors or random additional colors. \
78-
Use the new `overflow` parameter to explicitly control this behavior.
79-
- Reduced import overhead by nearly two orders of magnitude (from ~1.2s down to ~0.02s) [[#1469](https://github.com/JetBrains/lets-plot/issues/1469)].
80-
- Missing values in `geom_area_ridges()` create gaps in geometries instead of being interpolated over.
81-
- Discrete color scales (Brewer, Manual) now produce a `colorbar` guide when used with continuous data. \
82-
Previously they produced a `legend` guide regardless of the data type.
83-
84-
85-
- Changes affecting users on the JVM platform:
86-
- Upgraded the Kotlin version to 2.2.20 (was 1.9.25).
87-
- New artifact for JVM Swing applications: `org.jetbrains.lets-plot:lets-plot-swing`. \
88-
This artifact provides the `SwingPlotPanel` class, which can be used to display plots in Swing applications instead of the now-obsolete `DefaultPlotPanelBatik`. \
89-
For details, see the [jvm-swing-app](https://github.com/alshan/lets-plot-mini-apps/tree/main/jvm-swing-app) example in the "lets-plot-mini-apps" repository.
90-
- [**BREAKING**]: Removed JavaFX artifacts. \
91-
The `org.jetbrains.lets-plot:lets-plot-jfx` artifact is no longer available. \
92-
Replace it with new `org.jetbrains.lets-plot:lets-plot-swing` dependency and use `SwingPlotPanel` instead of `DefaultPlotPanelJfx`. \
93-
For details, see the [jvm-javafx-app](https://github.com/alshan/lets-plot-mini-apps/tree/main/jvm-javafx-app) example in the "lets-plot-mini-apps" repository.
94-
- [**BREAKING**]: Removed `plot-image-export` module. \
95-
The `org.jetbrains.lets-plot:lets-plot-image-export` artifact is no longer available. \
96-
The `PlotImageExport` utility has been moved to the `platf-awt` module. \
97-
The required `org.jetbrains.lets-plot:platf-awt` dependency is likely already present in your project.
98-
99-
1007
### Fixed
101-
102-
- Drop commons-io dependency [[#1421](https://github.com/JetBrains/lets-plot/issues/1421)].
103-
- Unexpected replacement of double curly brackets with a single curly bracket [[#1433](https://github.com/JetBrains/lets-plot/issues/1433)].
104-
- Upgrade to a newer version of ws [[#1150](https://github.com/JetBrains/lets-plot/issues/1150)].
105-
- geom_imshow: unclear error message when mixing transparencies [[#1088](https://github.com/JetBrains/lets-plot/issues/1088)].
106-
- geom_imshow and scale_y_reverse [[#1210](https://github.com/JetBrains/lets-plot/issues/1210)].
107-
- Nice to be able to get a list of colors from a color scale object [[#1444](https://github.com/JetBrains/lets-plot/issues/1444)].
108-
- Allow tooltips param to accept list [[#1455](https://github.com/JetBrains/lets-plot/issues/1455)].
109-
- Allow grouped tooltips for plots with multiple univariate geoms [[#1460](https://github.com/JetBrains/lets-plot/issues/1460)].
110-
- Fixed a regression in geom_text_repel() / geom_label_repel(): points with empty labels were incorrectly skipped \
111-
before building the repel obstacle set, so they were not included in collision avoidance and labels could overlap \
112-
dense point clusters.

js-package/distr/lets-plot.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

python-package/lets_plot/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
# Use of this source code is governed by the MIT license that can be found in the LICENSE file.
44
#
55
# see: https://www.python.org/dev/peps/pep-0440/#developmental-releases
6-
__version__ = '4.9.1.dev1'
6+
__version__ = '4.9.0'

0 commit comments

Comments
 (0)