| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| lets-plot.min.js | 2026-03-11 | 2.8 MB | |
| README.md | 2026-03-11 | 7.3 kB | |
| v4.9.0 source code.tar.gz | 2026-03-11 | 197.1 MB | |
| v4.9.0 source code.zip | 2026-03-11 | 199.3 MB | |
| Totals: 4 Items | 399.2 MB | 0 | |
[4.9.0] - 2026-03-11
Added
-
Python 3.14 support.
-
Python 3.14 free-threading support [#1454].
-
Plot Annotations:
-
New
labelsparameter ingeom_smooth()designed to display statistical summaries of the fitted model directly on the plot. \ This parameter accepts asmooth_labels()object, which provides access to model-specific variables like $R^2$, the regression equation and others.See: example notebook.
-
Plot tags. A tag can be specified via
labs(tag=...)and styled using theme parameters [#1407].See: example notebook and updated plot layout scheme.
-
Plot tags customization parameters in
theme():plot_tag- sets the tag style viaelement_text().plot_tag_location- specifies the area used for positioning the tag.plot_tag_position- specifies the position of the tag within the selected area.plot_tag_prefix- text added before the tag value.plot_tag_suffix- text added after the tag value.
See: example notebook.
-
Geometries:
-
New
geom_bracket(),geom_bracket_dodge()[#1114].See: example notebook.
-
geom_imshow():- Support for custom colormaps [#780].
- New
cguideparameter: use to customize the colorbar for grayscale images.
See: example notebook.
-
Color Scales:
-
New
palette()method for color scales: generates a list of hex color codes that can be used withscale_color_manual()to maintain consistent colors across multiple plots [#1444].See: example notebook.
-
New
overflowparameter inscale_color_brewer()/scale_fill_brewer(): controls how colors are generated when more colors are needed than the palette provides. \ Options:'interpolate'('i'),'cycle'('c'),'generate'('g').See: example notebook.
-
Positional Scales:
-
New
break_widthparameter that specifies a fixed distance between axis breaks.See examples:
-
Support for axis minor ticks via
axis_minor_ticksandaxis_minor_ticks_lengthparameters intheme()[#1379].See: example notebook.
-
gggrid(): interactive pan/zoom now propagates across subplots with shared axes (sharex/sharey) [#1413].
See: example notebook.
Changed
- [BREAKING]: ColorBrewer palettes: changed default behavior when the requested number of colors exceeds the palette's maximum size. \
Now defaults to
'interpolate'for sequential/diverging palettes and'generate'for qualitative palettes. \ Previously, depending on the palette type, this either resulted in duplicate colors or random additional colors. \ Use the newoverflowparameter to explicitly control this behavior. - Reduced import overhead by nearly two orders of magnitude (from ~1.2s down to ~0.02s) [#1469].
- Missing values in
geom_area_ridges()create gaps in geometries instead of being interpolated over. -
Discrete color scales (Brewer, Manual) now produce a
colorbarguide when used with continuous data. \ Previously they produced alegendguide regardless of the data type. -
Changes affecting users on the JVM platform:
- Upgraded the Kotlin version to 2.2.20 (was 1.9.25).
- New artifact for JVM Swing applications:
org.jetbrains.lets-plot:lets-plot-swing. \ This artifact provides theSwingPlotPanelclass, which can be used to display plots in Swing applications instead of the now-obsoleteDefaultPlotPanelBatik. \ For details, see the jvm-swing-app example in the "lets-plot-mini-apps" repository. - [BREAKING]: Removed JavaFX artifacts. \
The
org.jetbrains.lets-plot:lets-plot-jfxartifact is no longer available. \ Replace it with neworg.jetbrains.lets-plot:lets-plot-swingdependency and useSwingPlotPanelinstead ofDefaultPlotPanelJfx. \ For details, see the jvm-javafx-app example in the "lets-plot-mini-apps" repository. - [BREAKING]: Removed
plot-image-exportmodule. \ Theorg.jetbrains.lets-plot:lets-plot-image-exportartifact is no longer available. \ ThePlotImageExportutility has been moved to theplatf-awtmodule. \ The requiredorg.jetbrains.lets-plot:platf-awtdependency is likely already present in your project.
Fixed
- Drop commons-io dependency [#1421].
- Unexpected replacement of double curly brackets with a single curly bracket [#1433].
- Upgrade to a newer version of ws [#1150].
- geom_imshow: unclear error message when mixing transparencies [#1088].
- geom_imshow and scale_y_reverse [#1210].
- Nice to be able to get a list of colors from a color scale object [#1444].
- Allow tooltips param to accept list [#1455].
- Allow grouped tooltips for plots with multiple univariate geoms [#1460].
- Fixed a regression in geom_text_repel() / geom_label_repel(): points with empty labels were incorrectly skipped \ before building the repel obstacle set, so they were not included in collision avoidance and labels could overlap \ dense point clusters.