Lets Plot Versions Save

Multiplatform plotting library based on the Grammar of Graphics

v4.1.0rc1

7 months ago

v4.0.1

8 months ago

[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

9 months ago

[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].

v4.0.0rc1

10 months ago

v3.2.0

1 year ago

[3.2.0] - 2023-05-09

Added

  • geom_lollipop().

    See: example notebook.

  • Aesthetic stroke [#320] and its scales scale_stroke(), scale_stroke_identity().

    See: example notebook.

  • Aesthetic linewidth (for geom_lollipop()) and its scales scale_linewidth(), scale_linewidth_identity().

    See: example notebook.

  • The 'newline' character (\n) now works as line break in legend text ([#726])

    See: example notebook.

  • Horizontal error bars and vertical "dodge" ([#735]).

    See: example notebook.

  • Colorbar in geom_imshow(). Parameters show_legend and color_by [#717].

Changed

  • [BREAKING] geom_dotplot() and geom_ydotplot() no longer support parameter stat.

  • Position adjustment settings:

    • width, height parameters of geom_jitter() have priority over the width, height parameters of position_jitter() function;
    • nudge_x, nudge_y parameters of geom_text(), geom_label() have priority over x, y parameters of position_nudge() function.
  • geom_text(), geom_label() use stat='identity' by default.

  • JVM/Batik: improved "paint manager" which now has better performance and fixes issues with artifacts that could appear beyond the plot component.

Fixed

  • Batik: geom_imshow() fail with an error: "The attribute "xlink:href" of the element is required"
  • Batik: bug with usage of "&" [#713].
  • Categorical ordering, it's not respected for Boxplot and violin plot [#746].
  • Groups not sorted similarly when using facets [#679].
  • HTML export: exclude computation messages from the output [#725].
  • Image export not working with geom_imshow() and geom_raster() [LPK-175].
  • geom_segment() doesn't take into account the alpha [#748].
  • geom_density2d: Internal error with None values in data [#702].
  • DateTime metadata is not applied for scales other than X/Y [LPK-174].
  • Quantile should be shown in tooltip if the variable ..quantile.. is mapped to geom aesthetic.
  • Bad default formatting for stat variables [#654].
  • The scale name does not apply with as_discrete() [#653].
  • Tooltip is not shown when configured for 'const' value [#610].
  • Fix crash when try to add a constant to a tooltip (e.g."^size", where size aesthetic is specified with a number).
  • "Variable not found" error in ggmarginal [#681].
  • facet_grid: Internal error [#699].
  • Export to SVG fails if breaks are given by integers [#763].
  • Remove hard IPython dependency [#749].
  • Tooltips bug [LPK-176].
  • livemap: doesn't work well with gggrid [#750].
  • livemap: memory leak caused by a document event handler.
  • livemap: flickering when zooming with the buttons.
  • livemap: tooltip text doesn't reflect data under the cursor [#709].

v3.2.0rc1

1 year ago

v3.1.0

1 year ago

[3.1.0] - 2023-03-07

Added

  • gggrid() function.

    See: example notebook.

  • joint_plot()

    See: example notebook.

  • Export to PNG files in ggsave().

    Note: export to PNG file requires the CairoSVG library.

    See: example notebook.

  • Axis position parameter in position scales scale_x_*(), scale_y_*().

    See: example notebook.

  • angle parameter in element_text() in theme().

    See: example notebook.

  • Additional "color" aesthetics: paint_a, paint_b, paint_c.

    These aesthetics are flexible and can be used as either "color" or "fill" as needed. See Multiple Color Scales demo.

    Also added a set of related "color scale" functions with the "aesthetic" parameter for configuring of additional color scales.

    See New "Scale" Functions demo.

  • Drawing quantile lines and filling quantile areas in geom_violin() and geom_density()

    See: example notebook.

  • geodesic parameter for geom_segment() and geom_path().

    See: example notebook.

  • density2d and density2df geometry types in residual_plot().

Changed

  • The MinGW toolchain is no longer required for installing of Lets-Plot on Windows.

  • [BREAKING] geom_violin() no longer supports parameter draw_quantiles. Use new quantile_lines and quantiles parameters as needed.

  • [BREAKING] stack and fill position adjustments now stack objects on top of each other only if these objects belong to different groups. If necessary, use mode="all"" in position_stack() or position_fill() to stack objects regardless of their group.

    See: example notebook.

Fixed

  • Tooltip does not reflect ..quantile.. aesthetic change [#658].
  • color_by parameter of the residual_plot() should group the data points [#662].
  • 'map_join': variable is lost after "stat" [#664].
  • Error when tooltip has variable mapped to aesthetic used by stat [#665].
  • Groups not sorted similarly when position='stack' [#673].
  • Area ridges: fill overlaps geometry borders when colors are repeated [#674].
  • livemap: hide tooltips when user is zooming-in by double-clicks [#659].
  • livemap: wrong position when path goes through the antimeridian [#682].
  • livemap: wrong position if path is on a circle of latitude [#683].
  • livemap: tooltip may show wrong data on density2df [#684].
  • livemap: geom_text vjust="center" is a bit off [#132].
  • livemap: segment that goes through the antimeridian should be straight [#692].
  • livemap: apply alpha to the pie chart and to its tooltip color marker.
  • Layout: uneven plot margins for the horizontal axis [#705].
  • Sampling: increase the default N for "pick sampling" and for other types of sampling [#687].

v3.1.0rc1

1 year ago

v3.0.0

1 year ago

[3.0.0] - 2022-12-15

Added

Changed

  • [BREAKING] Dropped support for Python 3.6 as it is in the "end-of-life" of its release cycle.
  • [BREAKING] geom_livemap() itself no longer draws geometries, so the following options are no longer supported: symbol, data, mapping, map, map_join, ontop, stat, position, show_legend, sampling, tooltips. To draw point and pie markers on map, please, use the geom_point() and geom_pie() geometry layers.
  • Java/Swing platf.: Apache Batik upgraded to v.1.16 [#624], [LPK #140].
  • The default size is increased for the plot title and decreased for the caption.
  • Upgraded Kotlin version to 1.7.21 (was 1.7.20).

Fixed

  • Themes: can't change plot background after applying a "flavor" [#623].
  • Layout: uneven left/right, top/bottom plot margins [#625].
  • A plot building error with empty data on various geoms.
  • Precision error in gradient [#634].
  • geom_livemap: wrong position when datapoints geodesic line goes close to the N.P. [#645].

v3.0.0rc2

1 year ago