Releases: JetBrains/lets-plot
v4.5.1
[4.5.1] - 2024-10-25
Changed
- Interact refinement:
- Dragging the plot or Livemap disables the pinned tooltip mode.
- Double-clicking the plot or Livemap disables the pinned tooltip mode.
- Ctrl + double-clicking the Livemap zooms in without the blinking fade-in effect.
Fixed
- Buttons alignment in the toolbar.
- Wheel zooming-out a plot with log positional scales crashes fast.
v4.5.0
[4.5.0] - 2024-10-23
Added
-
Python 3.13 support
-
ggtb()
: enable zoom/pan interactivity on plot [#983],[#1019]See example notebook.
-
Interactive links in tooltips/labels/texts [#1091].
See example notebook.
-
Formatting:
-
LaTeX support: superscript, subscript ([#861]) and Greek letters ([#960]).
See example notebook.
-
Scientific notation: compact form. Enable the compact form using the
exponent_format
parameter intheme()
[#1071].See example notebook.
[WARNING] Subscripts and superscripts are not supported in PDF and PNG exports.
-
-
In
theme()
:-
legend_margin, legend_spacing, legend_spacing_x, legend_spacing_y, legend_box, legend_box_just, legend_box_spacing
parameters [#1180].See example notebook.
-
legend_key, legend_key_size, legend_key_width, legend_key_height, legend_key_spacing, legend_key_spacing_x, legend_key_spacing_y
parameters [#1181].See example notebook.
-
strip_background_x, strip_background_y, strip_text_x, strip_text_y
parameters [#1195].See example notebook.
-
-
Custom
linetype
patterns [#1198]:- a list specifying the pattern of dashes and gaps used to draw the line:
[dash, gap, dash, gap, ...]
; - a list with a specified offset:
[offset, [dash, gap, dash, gap, ...]]
; - a string of an even number (up to eight) of hexadecimal digits specifying the lengths in consecutive positions in the string.
See example notebook.
- a list specifying the pattern of dashes and gaps used to draw the line:
-
Geometries:
-
geom_blank()
[#831]. -
base
parameter inwaterfall_plot()
[#1159].See example notebook.
-
check_overlap
parameter ingeom_text()
andgeom_label()
.See example notebook.
-
marginal
parameter inqq_plot()
:See example notebook.
-
inherit_aes
parameter in layers [#1172].
-
-
expand_limits()
[#820].See example notebook.
-
Support for 3-character hex color codes
Changed
-
Parameters
labwidth
infacet_wrap()
,x_labwidth, y_labwidth
infacet_grid()
: the maximum label length is applied after splitting at\n
separators, if present. -
Use
theme_light()
as the default theme inqq_plot()
. -
[BREAKING] For API deprecated in v4.0 the deprecation level raised to "Error" (only relevant for Kotlin clients).
-
[BREAKING] The 'base-midnight', 'base-antique' and 'base-flatblue' tilesets are deprecated (no longer served by CARTO) and will be removed in future releases.
Fixed
- Better Marimo Support (via PR-2084) [#1018].
- Support layering
aes()
multiple times [#822]. - waterfall_plot: faceting doesn't work without a measure mapping [#1152].
- waterfall_plot: tooltips don't work with column names from original dataset [#1153].
- Legend icon background is not transparent when
legend_background
is set to "blank" intheme
[#1167]. - Unable to display or save graph when using geom_path [#1168].
- Legend icon background should inherit the fill color of the plot panel (i.e. grey when
theme_grey
is used). - Vertex sampling uses different tolerances for objects within the same plot [#1174].
- sampling_vertex_vw doesn't work as expected [#1175].
- sampling_vertex_dp may break rings [#1176].
- ggmarginal: bottom boxplot is broken [#1189].
- Offscreen cells are sometimes not rendered in JupyterLab.
- The legend_justification parameter doesn't work if the legend_position='top' [#1031].
- coord_polar: geom_point tooltips should take in account point size [#1214].
v4.5.0rc2
Updated version v4.5.0rc2
v4.5.0rc1
Updated version v4.5.0rc1
v4.4.1
[4.4.1] - 2024-08-21
Added
-
New variables computed by
'bin'
statistic:'..sumprop..'
,'..sumpct..'
[#1155].See: example notebook.
Fixed
v4.4.0
[4.4.0] - 2024-08-02
Added
-
Waterfall plot [#975]:
See example notebook.
-
geom_band()
[#733]:See example notebook.
-
Custom legends [#774]:
manual_key
parameter in plot layerlayer_key()
function
See example notebook.
-
In legends:
-
title
parameter inguide_legend()
andguide_colorbar()
functionsSee example notebook.
-
override_aes
parameter in theguide_legend()
function [#807]:See example notebook.
-
-
plot_title_position
andplot_caption_position
parameters intheme()
[#1027]:See example notebook.
-
threshold
parameter ingeom_histogram()
[#1122]:See example notebook.
-
Color scales using Matplotlib's colormap [#1110]:
Thanks to a contribution by Eric Gayer.
See example notebook.
Changed
- [breaking change]
guide_legend()
/guide_colorbar()
require keyword arguments for 'nrow'/'barwidth' and other parameters except 'title'. - The triangular point shape is now anchored to the data point via the centroid
as_discrete()
is added tolets-plot
wildcard import (i.e. when usingfrom lets-plot import *
)
Fixed
- ggsave (.svg) transforms geom_text integer to float [#626].
- Int DataFrame column names are being converted to float string representation [#901].
linetype
= 0 ('blank') should make lines invisible [#712].geom_density2d
: support weight aesthetic [#791].- Discrete axis labels unnecessarily rotate 90 degrees when applying coord system limits.
- Axis title via
labs()
breaks the date-time scale [#1113]. - JavaFX IllegalArgumentException: Unsupported attribute
display
in Pane.
v4.4.0rc1
Updated version v4.4.0rc1
v4.3.3
[4.3.3] - 2024-05-29
Added
- Support for "angle" aesthetic in
geom_point()
[#736].
See example notebook.
Changed
- [BREAKING] Dropped support for Python 3.7 as it is in the "end-of-life" of its release cycle.
Fixed
- Livemap: improve "tiles" documentation [#1093].
- Undesired vertical scroller when displaying
gggrid
in Jupyter notebook. - GeoJson structure breaks if the ring start label occurs several times [#1086].
theme
: left margin doesn't work for theplot_title
parameter [#1101].- Improve border line type experience [LPK-220].
v4.3.2
v4.3.1
[4.3.1] - 2024-04-16
Added
-
Parameter
dpi
inggsave()
,to_png()
andto_pdf()
functions [#839].See example notebook.
-
Parameter
labwidth
infacet_wrap()
andx_labwidth/y_labwidth
infacet_grid()
[LPK-237].See: example notebook.
-
Parameter
linetype
inelement_line()
andelement_rect()
intheme()
[LPK-235].See: example notebook.
-
Parameter
arrow
ingeom_spoke()
[#986].See: example notebook.
-
Parameter
size_unit
ingeom_point()
,geom_text()
andgeom_label()
.See: example notebook.
-
Auto-detection of
orientation="y"
in bar-chart etc. [#558].See: example notebook.
-
Parameter
plot_inset
intheme()
.See: example notebook.
Fixed
- ggmarginal(): broken coloring [#760].
- Incorrect 'plot_background' area (with empty space capture) [#918].
- geom_density2df: uneven borders [#941].
- DateTime is not recognised in polars.DataFrame [#961].
- Support geom_spoke() in geom_livemap() [#988].
- NASA BlueMarble tiles have become blank [#1000].
- Line segments in geom_density2df() do not get interpolated when used with coord_polar() [#1037].
- arrow on segment: reduce arrow size for short segments [#1040].
- arrow on curve sometimes looks weird [#1041].
- livemap: when release the mouse button from outside the map, it gets stuck in panning mode [#1044].
- Improve documentation for parameter
position
[#1047]. - Error when build geom_smooth() with se=False [#1050].
- Livemap:
vjust
implemented incorrectly [#1051]. - Add tooltips for
geom_curve()
[#1053]. - Incorrect position for bar annotations when specifying
scale_x_reverse()/scale_y_reverse()
[#1057]. - Missing outer bar annotations when specifying
scale_x_reverse()/scale_y_reverse()
[#1058]. geom_density2d
: the doc missing some 'computed' variables [#1062].- Weird and problematic behavior : lets-plot does not respect x and y. Sizing problem ?[#1068].
- Plot layout breaks when marginal layers are used #1074 [#1074].
- Discrete scale doesn't work for datetime data [LPK-231].
- Add
linetype
parameter inelementLine()
andelementRect()
[LPK-235]. - Any way to line-wrap facet labels? [LPK-237].
- Missing marginal gridlines.
- Cryptic error message on geom_boxplot with orientation="y" [#600].
set_theme()
should accept "feature list" [#657].