Skip to content

Releases: JetBrains/lets-plot

v4.3.1rc1

12 Apr 17:01
Compare
Choose a tag to compare
v4.3.1rc1 Pre-release
Pre-release
Updated version v4.3.1rc1

v4.3.0

07 Mar 18:04
Compare
Choose a tag to compare

[4.3.0] - 2024-03-07

Added

  • coord_polar()

    The polar coordinate system is most commonly used for pie charts, but

    it can also be used for constructing Spyder or Radar charts using the flat option.

    See: example notebook.

  • In the theme() function:

    • panel_inset parameter - primarily used for plots with polar coordinates.

      See: example notebook.

    • panel_border_ontop parameter - enables the drawing of panel border on top of the plot geoms.

    • panel_grid_ontop, panel_grid_ontop_x, panel_grid_ontop_y parameters - enable the drawing of grid lines on top of the plot geoms.

  • geom_curve()

    See: example notebook.

  • [UNIQUE] Visualizing graph-like data with geom_segment() and geom_curve().

    • Aesthetics size_start, size_end, stroke_start and stroke_end enable better alignment of

      segments/curves with nodes of the graph by considering the size of the nodes.

    • The spacer parameter allows for additional manual fine-tuning.

    See:

  • alpha_stroke parameter in geom_label() to enable the applying of alpha to color [#1029].

    See: example notebook.

  • Showing plots in external browser

    The LetsPlot.setup_show_ext() directive allows plots to be displayed in an external browser window.

Changed

  • [BREAKING] Function geom_image() is removed. Please use geom_imshow() instead.
  • Parameter axis_ontop in theme() is now True by default.

Fixed

  • coord_map() should distort tiles size to account for different unit size at different latitudes[#331].
  • geom_errorbar(): wrong positioning of tooltips [#992].
  • geom_path(): tooltip position interpolation [#855].
  • Stacked bar-chart annotation: labels go out of the plot when zooming-in using coord_cartesian(xlim, ylim) [#981].
  • Facets: "free scales" options are ignored by discrete axis [#955].
  • Bar width is too large when x-domain is defined via x-scale limits [#1013].
  • How to hide only main tooltip? [LPK-#232].
  • Make middle strip in geomCrossbar() optional [LPK-233].
  • Can't set None for coord limit [#486].
  • Scale limits don't work for bars/area [LPK-219], [#978].
  • No gridlines when axis_ontop=True [#1012].
  • bar-plot: do not draw bar border adjacent to the axis [#845].
  • Displaying tooltips on a multilayer plot [#1030].
  • Make segment geometry better suited for graphs visualization [#572].

v4.3.0rc2

04 Mar 19:16
Compare
Choose a tag to compare
v4.3.0rc2 Pre-release
Pre-release
Updated version v4.3.0rc2

v4.3.0rc1

01 Mar 18:05
Compare
Choose a tag to compare
v4.3.0rc1 Pre-release
Pre-release
Updated version v4.3.0rc1

v4.2.0

28 Dec 14:30
Compare
Choose a tag to compare

[4.2.0] - 2023-12-28

Added

  • Support for Categoricals:

    • Support for pandas.Categorical data type [#914].
    • The levels parameter in as_discrete() function [#931].

    See: example notebook.

  • Support for superscript for numbers in scientific notation [#743].

    Warning!

    Do NOT(!) use exponent_format='pow' if you are planning to export plot to a raster format (PNG,PDF).

    The CairoSVG library (which is under the hood of our ggsave() function) does not handre tspan element properly end breaks superscript notation when transforming SVG to PNG/PDF.

    More details: Kozea/CairoSVG#317
    See: example notebook.

  • Support exporting plot to a file-like object.

    Convenience methods: to_svg(), to_html(), to_png(), to_pdf() [#885], [#590].

    See: example notebook.

  • Sharing of X,Y-scale limits between subplots in gggrid() [#718].

    See: example notebook.

  • geom_spoke() [#738].

    See: example notebook.

  • scale_x_log2(), scale_y_log2() [#922].

  • High-contrast tileset "BW" for geom_livemap().

    See: example notebook.

  • New variables computed by 'count' and 'count2d' statistics: '..sumprop..', '..sumpct..' [#936].

    See: example notebook.

  • Support using dictionaries for breaks/labels/values customization in scale_xxx() functions [#169], [#882].

    See: example notebook.

  • The lablim parameter in scale_xxx() functions [#939, #946].

    See: example notebook.

  • label_text parameter in theme() for annotation text settings [#930].

    See: example notebook.

  • NumberFormat: new flag ~ to trim trailing zeros.

Changed

  • [BREAKING] Function margin() is deprecated and will be removed in future releases.

    Please replace all existing usages, i.e. theme(plot_margin=margin(..)) and element_text(margin=margin(..))

    with a list or with just a number:

    • a number or list of one number - the same margin it applied to all four sides;
    • a list of two numbers - the first margin applies to the top and bottom, the second - to the left and right;
    • a list of three numbers - the first margin applies to the top, the second - to the right and left,
      the third - to the bottom;
    • a list of four numbers - the margins are applied to the top, right, bottom and left in that order.

    See: example notebook.

  • Upgraded Apache Batik to version 1.17 [#887]

Fixed

  • Jitter reproducibility in geom_jitter, position_jitter, position_jitterdodge [#911].
  • Facets: order = 0 doesn't work as expected [#923].
  • geom_livemap: fix missing styles (e.g. road outline on high zooms) [#926].
  • geom_livemap: freeze at zoom 10 [#892].
  • Enormous CPU / Time/ Memory consumption on some data [#932].
  • gggrid: composite plot is not visible if saved with ggsave [#942].
  • gggrid doesn't override global theme [#966].
  • scale_continuous() fails with non-color aesthetics [#953].
  • NumberFormat: g format doesn't use e-notation for small numbers [#965].
  • Tooltips: graphical artifacts and bad performance in multi-line plot in Batik [#967].
  • Wrong tooltip position on geom_segment() with position adjustment [#963].

v4.2.0rc1

22 Dec 19:13
Compare
Choose a tag to compare
v4.2.0rc1 Pre-release
Pre-release
Updated version v4.2.0rc1

v4.1.0

03 Nov 12:21
Compare
Choose a tag to compare

[4.1.0] - 2023-11-03

Added

Changed

  • [BREAKING] stat_summary() and stat_summary_bin no longer supports computing of additional variables specified in mappings.

Fixed

  • Husl palette equivalent [#876].
  • Tooltips are trimmed and not visible on a very narrow chart [#837].
  • geom_crossbar: an error occurs if the mapped values of aesthetics are not populated [#886].
  • Exception label is unresizeble, uncopyable and uncontrollable [#902].
  • Flickering during plot downsizing [#888].
  • Bad default formatting of numeric values in annotations [#905].
  • corr_plot: unexpected whitespace between the "geometry area" and the legend [#877].
  • scale_log: an option to generate only breaks which are integer powers of 10 needed [#850].
  • Trimmed legend when bounds of the rightmost X-axis tick label exceeds the axis length [#851].
  • HTML files exported using ggsave() are missing the encoding specification [#900].
  • plot_margin parameter in theme() [#856].
  • Subplot themes not inherited by parent [LPK-#197].
  • Saving plots in PDF format using ggsave() [#710].
  • element_blank() has no effect on plot title/subtitle/caption in theme() [#913].
  • Lollipop in legend is disproportionately large [LPK-216].
  • geomBar with fill, produces tooltips artefacts [#895].
  • Exception, when trying to build plot with column name containing line breakes [#894].
  • Added "grey" spelling for the gray color (earlier - "gray" only).

v4.1.0rc1

01 Nov 15:50
Compare
Choose a tag to compare
v4.1.0rc1 Pre-release
Pre-release
Updated version v4.1.0rc1

v4.0.1

13 Sep 17:19
Compare
Choose a tag to compare

[4.0.1] - 2023-09-13

Added

Changed

  • If layer transparency is set via the alpha-channel in the colors RGBA specification and via the alpha aesthetic,
    then the alpha aesthetic overrides the alpha-channel in the color. Previousely it was the opposite.

  • geom_pie() defaults:

    • "stroke" is visible and stroke_side='both' (was stroke_side='outer').
    • the "hole" is not created automatically when stroke_side = 'both'/'inner' (was created automatically).
  • geom_bar() now has solid outline color by default (was transparent).

  • geom_tile(), geom_bin2d() now have solid outline color by default (was transparent).

    • however, by default the size is 0 (i.e. tiles outline initially is not visible).

Fixed

  • geom_tile(), geom_bin2d() : the alpha aesthetic is applied to the tiles outline.
  • scale_x_datetime(): error building plot for early dates [#346].
  • geom_livemap(): theme/flavor plot background is not shown [#857].
  • geom_livemap(): in AWT dragging a map in a facet moves maps in all facets.
  • geom_livemap(): support rectangle 'linetype' [#307].
  • theme_void() + flavor_xxx(): no expected plot background [#858].
  • Inconsistent color in legend when using paint_a/paint_b/paint_c [#867].

v4.0.0

17 Aug 11:44
Compare
Choose a tag to compare

[4.0.0] - 2023-08-17

Added

Changed

  • The default qualitative color palette is now Color Brewer "Set1" (was "Set2")

  • Geometries default colors are now flavor-dependent: example notebook.

  • Geometries default size/line-width is now slightly bigger.

  • Point size is adjusted to match the width of a line of the same "size".

  • [BREAKING] geom_pie() no longer supports parameter stroke_color.

  • [BREAKING] geom_boxplot() no longer support parameter sampling.

  • [BREAKING] geom_pointrange(): size aesthetic shouldn't affect line width [#751]:

    linewidth aesthetic is used for line width, size - for mid-point size only.

  • geom_boxplot(): size and stroke parameters now affect outlier shapes.

  • [BREAKING, only affects users of Lets-Plot Kotlin API]
    The entire project has undergone package refactoring.
    As a result of package names changed, Lets-Plot v4.0.0 is partially incompatible
    with Lets-Plot Kotlin API versions 4.4.1 and earlier.

Fixed

  • ggsave() doesn't save geom_raster() layer to a file [#778].
  • ggsave(): saving geomImshow() to SVG produces fuzzy picture [LPK-188].
  • ggsave(): saving geomImshow() to raster format produces fuzzy picture.
  • geom_crossbar() aesthetics take middle argument instead of y [#804].
  • geom_boxplot() doesn't apply alpha to outliers [#754].
  • geom_boxplot() outliers do not show tooltips.
  • geom_step() no tooltips.
  • geom_step(): toggle the behavior of the direction parameter when the orientation is changed.
  • geom_livemap(): memory leak when re-run cells without reloading a page.
  • geom_ribbon(): not all tooltips are shown on a multi-layer plot [#847].
  • Bug in empty plot: IndexOutOfBoundsException [#194].
  • Weird tooltip/legend in case of extremely long value [#315].
  • panning on interactive map should be more responsive [#336].
  • Offline mode doesn't work with manylinux wheels [#808].