lets-plot

Multiplatform plotting library based on the Grammar of Graphics

MIT License

Downloads
30.4K
Stars
1.5K
Committers
20

Bot releases are hidden (Show)

lets-plot - v4.3.3 Latest Release

Published by VDovidaytis-HORIS 5 months ago

[4.3.3] - 2024-05-29

Added

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 the plot_title parameter [#1101].
  • Improve border line type experience [LPK-220].
lets-plot - v4.3.2

Published by VDovidaytis-HORIS 6 months ago

[4.3.2] - 2024-04-25

Changed

  • to_svg(), to_html(): return the content as string if no "path" is given [#1067].

Fixed

  • LP occasionally crashes when drawing polygons [#1084].
  • Regression of issue [#966].
  • Livemap: labels on the map look blurry [#1045].
  • Linetype doesn't work for geom_tile() [LPK-241].
lets-plot - v4.3.1

Published by VDovidaytis-HORIS 6 months ago

[4.3.1] - 2024-04-16

Added

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 in elementLine() and elementRect() [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].
lets-plot - v4.3.1rc1

Published by VDovidaytis-HORIS 6 months ago

lets-plot - v4.3.0

Published by VDovidaytis-HORIS 8 months ago

[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].
lets-plot - v4.3.0rc2

Published by VDovidaytis-HORIS 8 months ago

lets-plot - v4.3.0rc1

Published by VDovidaytis-HORIS 8 months ago

lets-plot - v4.2.0

Published by VDovidaytis-HORIS 10 months ago

[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: https://github.com/Kozea/CairoSVG/issues/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].
lets-plot - v4.2.0rc1

Published by VDovidaytis-HORIS 10 months ago

lets-plot - v4.1.0

Published by VDovidaytis-HORIS 12 months ago

[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).
lets-plot - v4.1.0rc1

Published by VDovidaytis-HORIS 12 months ago

lets-plot - v4.0.1

Published by VDovidaytis-HORIS about 1 year 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].
lets-plot - v4.0.0

Published by VDovidaytis-HORIS about 1 year 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].
lets-plot - v4.0.0rc1

Published by VDovidaytis-HORIS about 1 year ago

lets-plot - v3.2.0

Published by VDovidaytis-HORIS over 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].
lets-plot - v3.2.0rc1

Published by VDovidaytis-HORIS over 1 year ago

lets-plot - v3.1.0

Published by VDovidaytis-HORIS over 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].
lets-plot - v3.1.0rc1

Published by VDovidaytis-HORIS over 1 year ago

lets-plot - v3.0.0

Published by VDovidaytis-HORIS almost 2 years 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].
lets-plot - v3.0.0rc2

Published by VDovidaytis-HORIS almost 2 years ago

Package Rankings
Top 12.28% on Repo1.maven.org
Top 2.47% on Pypi.org
Badges
Extracted from project README
official JetBrains project License MIT Latest Release Latest Release Latest Release JetBrains Plugins JetBrains plugins