Skip to content

Releases: JetBrains/lets-plot

v4.6.0

03 Mar 17:20
Compare
Choose a tag to compare

[4.6.0] - 2025-03-03

Added

  • Grouping plots:

    • ggbunch() function: combining plots with custom layout.

      See example notebook.

    • Support for plot title, subtitle, caption, margins and insets in gggrid() and ggbunch().

  • Geometries:

  • Texts and labels:

  • In the nudge position adjustment -
    the ability to specify absolute shift values for nudge:

    • unit parameter in position_nudge().

    • nudge_unit parameter in geom_text() and geom_label()

      See example notebook.

  • Theme:

    • Parameters legend_ticks and legend_ticks_length for fine-grained control over colorbar tick marks [#1262].

      See: example notebook.

  • Parameter spacer in image_matrix() function.

  • transparent/blank/'' color [#1281].

Changed

  • [DEPRECATED] class GGBunch is deprecated. Please use ggbunch() function instead.
  • Axis breaks: changed default lower_exp_bound to -7 and upper_exp_bound to 6 (same as in theme(...)).
  • Axis labels: changed default justification for rotated labels.
  • Axis labels: changed orientation of automatic vertical labels.
  • [BREAKING] geoms tile, bin2d, contour, contourf, density2d, density2df : default coordinate system changed from 'fixed' to 'cartesian'.
  • [BREAKING] tiles in geom_bin2d() are sized according to the binwidth value, not the maximum possible.
  • [BREAKING] only Lets-Plot/JS users: signature of "buildPlotFromXXX" functions changed, see current Kotlin/JS declarations:
  • [BREAKING] Maven artifacts (doesn't affect Python users):
    • artifacts platf-awt, platf-batik, platf-jfx-swing are no longer published with a "-jvm" suffix.
      Before, these artifacts could be used in dependencies either with or without the "-jvm" suffix. Now only without suffix.
    • artifact "org.jetbrains.lets-plot:deprecated-in-v4-jvm" is removed.

Fixed

  • Incorrectly rendered Area chart [#1295].
  • Tooltip should not cover and hide the geometry that it provides info for [#1275].
  • General purpose scale_continuous: can't use the expand parameter [#1285].
  • Error when using stat='summary' if the data contains NaN values [#1301].
  • Broken plot_background in gggrid [#1124].
  • plot_background not inheriting from rect [#1278]
  • gggrid: allow title and other labels for the entire figure [#715].
  • ggbunch: overall title [#321].
  • Expand discrete axis according to tile size with geom_tile [#1284].
  • geom_bin2d implodes when the disparity in axes units is large [#1303].
  • Livemap: parameters nudge_x and nudge_y have no effect on geom_text or geom_label [#1048].
  • Livemap: Add zooming-in for geom_text()/geom_label() [#1059].

v4.6.0rc1

27 Feb 18:51
Compare
Choose a tag to compare
v4.6.0rc1 Pre-release
Pre-release
Updated version v4.6.0rc1

v4.5.2

13 Dec 18:39
Compare
Choose a tag to compare

[4.5.2] - 2024-12-13

Changed

  • Number formatting:
    • We have aligned our specifications with D3.js (rather than Python): g format type with ~ (e.g. ~g) now truncates trailing zeros, and without ~ it doesn't.
    • The default number formatter now respects theme(exponent_format=...) settings and does not use 's' format type for large numbers.
  • Legends with more than 200 items are now not rendered.

Fixed

  • Bad precision in the default tooltip format when using coord limits [#1134].
  • Display integer values without fractional part in tooltips [#1186].
  • Suboptimal tooltip positioning in facets [#1187].
  • Incorrect Y-axis layout with facets and panel_inset [#1194].
  • Grouped plot hits the limit of 1000 and doesn't render with not-friendly exception [#1224].
  • Kandy toPNG reports NullPointerException [#1228]
  • lets_plot_kotlin_bridge is unable to locate libc++.1.dylib, I am using Mac m2 [#1234].
  • Wrong formatting when type='g' for small values [#1238].
  • Formatting when type='g' for large values throws exception [#1239].
  • Wrong formatting when type='s' with explicit precision [#1240].
  • Extra trim in formatted number when type='g' [#1241].
  • Axis breaks are badly formatted if explicitly set [#1245].
  • Badly formatted zero break for the "~g" format [#1246].
  • How to adjust the vertical position of geom_text when using position_dodge [#1248].
  • Incorrect result for format(9.999, ".2f") [#1251].
  • Tooltips overlapping when not enough vertical space for them [#1254].
  • Plot limited to 1000 lines (Internal error: IllegalStateException : Too many groups: 1099) [#1261].
  • Nice to have tooltip to inherit formatting configured for axis [LPK-229].

v4.5.1

25 Oct 16:22
Compare
Choose a tag to compare

[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

23 Oct 16:21
Compare
Choose a tag to compare

[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 in theme() [#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.

  • Geometries:

  • expand_limits() [#820].

    See example notebook.

  • Support for 3-character hex color codes

Changed

  • Parameters labwidth in facet_wrap(), x_labwidth, y_labwidth in facet_grid(): the maximum label length is applied after splitting at \n separators, if present.

  • Use theme_light() as the default theme in qq_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" in theme [#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

18 Oct 12:46
Compare
Choose a tag to compare
v4.5.0rc2 Pre-release
Pre-release
Updated version v4.5.0rc2

v4.5.0rc1

17 Oct 14:30
Compare
Choose a tag to compare
v4.5.0rc1 Pre-release
Pre-release
Updated version v4.5.0rc1

v4.4.1

21 Aug 16:52
Compare
Choose a tag to compare

[4.4.1] - 2024-08-21

Added

Fixed

  • "cmapmpl" color scale doesn't show the entire range of colors in continuous cmap. [#1149].
  • geom_histogram: wrong plot area when y='..density..' [#1157].

v4.4.0

02 Aug 16:22
Compare
Choose a tag to compare

[4.4.0] - 2024-08-02

Added

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 to lets-plot wildcard import (i.e. when using from 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

01 Aug 16:02
Compare
Choose a tag to compare
v4.4.0rc1 Pre-release
Pre-release
Updated version v4.4.0rc1