Skip to content

Releases: has2k1/plotnine

v0.4.0

01 Aug 15:30
v0.4.0
Compare
Choose a tag to compare

This is a big release with many improvements and bug-fixes.

See the official changelog for details.

Copy of the changelog

API Changes

  • Calculated aesthetics are accessed using the stat() function. The old method (double dots ..name..) still works.
  • stat_qq calculates slightly different points for the theoretical quantiles.
  • The scales (when set to free, free_x or free_y') parameter of facet_grid and facet_wrap assigns the same scale across the rows and columns.

New Features

  • Added geom_qq_line and stat_qq_line, for lines through Q-Q plots.
  • Added geom_density_2d and geom_stat_2d.
  • Added stat_ellipse.
  • Added geom_map.
  • Plotnine learned to respect plydata groups.
  • Added stat_hull.
  • Added save_as_pdf_pages().

Bug Fixes

  • Fixed issue where colorbars may chop off the colors at the limits of a scale.
  • Fixed issue with creating fixed mappings to datetime and timedelta type values.(GH88)
  • Fixed scale_x_datetime and scale_y_datetime to handle the intercepts along the axes (GH97).
  • Fixed stat_bin and stat_bin_2d to properly handle the breaks parameter when used with a transforming scale.
  • Fixed issue with x and y scales where the name of the scale was ignored when determining the axis titles. Now, the name parameter is specified, it is used as the title. (GH105)
  • Fixed bug in discrete scales where a column could not be mapped to integer values. (GH108)
  • Make it possible to hide the legend with theme(legend_position='none'). (GH119)
  • Fixed issue in stat_summary_bin where some input values gave an error. (GH123)
  • Fixed geom_ribbon to sort data before plotting. (GH127)
  • Fixed IndexError in facet_grid when row/column variable has 1 unique value. (GH129)
  • Fixed facet_grid when scale='free', scale='free_x' or scale='free_y', the panels share axes along the row or column.
  • Fixed geom_boxplot so that user can create a boxplot by specifying all required aesthetics. (GH136)
  • Fixed geom_violin to work when some groups are empty. (GH131)
  • Fixed continuous scales to accept minor=None (GH120)
  • Fixed bug for discrete position scales, where drop=False did not drop unused categories (GH139)
  • Fixed bug in stat_ydensity that caused an exception when a panel had no data. (GH147)
  • Fixed bug in coord_trans where coordinate transformation and facetting could fail with a KeyError. (GH151)
  • Fixed bug that lead to a TypeError when aesthetic mappings to could be recognised as being groupable. It was easy to stumble on this bug when using geom_density. (GH165)
  • Fixed bug in facet_wrap where some combination of parameters lead to unexpected panel arrangements. (GH163)
  • Fixed bug where the legend text of colorbars could not be themed. (GH171)

v0.3.0

08 Nov 18:57
v0.3.0
Compare
Choose a tag to compare

Big release with known bugs fixed and new features.

A copy of the changelog is pasted below.


API Changes

  • ~plotnine.geoms.geom_smooth gained an extra parameter
    legend_fill_ratio that control the area of the legend that is
    filled to indicate confidence intervals. (32)
  • plotnine.ggplot.save gained an extra parameter verbose. It no
    longer guesses when to print information and when not to.
  • plotnine.ggplot.draw gained an extra parameter return_ggplot.
  • If the minor_breaks parameter of scales is a callable, it now
    expects one argument, the limits. Previously it accepted breaks
    and limits.

New Features

  • Added ~plotnine.animation.PlotnineAnimation for animations.
  • Added ~plotnine.watermark.watermark for watermarks.
  • Added datetime scales for alpha, colour, fill and size
    aesthetics

Enhancements

  • Changed parameter settings for ~plotnine.stats.stat_smooth.

    1. Default span=0.75 instead of 2/3
    2. When using loess smoothing, the control parameter surface is
      only set to the value 'direct' if predictions will be made
      outside the data range.
  • Better control of scale limits. You can now specify individual
    limits of a scale.

    scale_y_continuous(limits=(0, None))
    xlim(None, 100)
    

    You can also use ~plotnine.scales.expand_limits

  • Low and high ~plotnine.scales.scale limits can now be expanded
    separately with different factors multiplicative and additive
    factors.

  • The layer parameter show_legend can now accept a dict for finer
    grained control of which aesthetics to exclude in the legend.

  • Infinite values are removed before statistical computations stats
    (40).

    stats also gained new parameter na_rm, that controls whether
    missing values are removed before statistical computations.

  • ~plotnine.qplot can now use the name and a Pandas series to label
    the scales of the aesthetics.

  • You can now put stuff to add to a ggplot object into a list and add
    that that instead. No need to wrap the list around the internal
    class Layers.

    lst = [geom_point(), geom_line()]
    g = ggplot(df, aes('x', 'y'))
    print(g + lst)
    

    Using a list allows you to bundle up objects. It can be convenient
    when creating some complicated plots. See the Periodic Table
    Example.

Bug Fixes

  • Fixed bug where facetting led to a reordering of the data. This
    would manifest as a bug for geoms where order was important. (26)
  • Fix bug where facetting by a column whose name (eg. class) is a
    python keyword resulted in an exception. (28)
  • Fix bug where y-axis scaling was calculated from the xlim
    argument.
  • Fix bug where initialising geoms from stats, and positions from
    geoms, when passed as classes (e.g. stat_smooth(geom=geom_point),
    would fail.
  • Fixed bug in plotnine.ggplot.save where s

Version 0.2.0

18 May 11:36
v0.2.0
Compare
Choose a tag to compare

Fixes

  • Fixed bug in scale_x_discrete and scale_y_discrete where if they were instantiated with parameter limits that is either a numpy array or a pandas series, plotting would fail with a ValueError.
  • Fixed exceptions when using pandas.pivot_table() for Pandas v0.20.0. The API was fixed.
  • Fixed issues where lines/paths with segments that all belonged in the same group had joins that in some cases were “butted”.

API Changes

  • geom_text now uses ha and va as parameter names for the horizontal and vertical alignment. This is what matplotlib users expect. The previous names hjust and vjust are silently accepted.
  • Layers() can now be used to bundle up geoms and stats. This makes it easy to reuse geoms and stats or organise them in sensible bundles when making complex plots.

Version 0.1.0

28 Apr 03:28
v0.1.0
Compare
Choose a tag to compare

First public release