Releases: has2k1/plotnine
v0.4.0
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
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, thelimits
. Previously it acceptedbreaks
andlimits
.
New Features
- Added ~plotnine.animation.PlotnineAnimation for animations.
- Added ~plotnine.watermark.watermark for watermarks.
- Added datetime scales for
alpha
,colour
,fill
andsize
aesthetics
Enhancements
-
Changed parameter settings for ~plotnine.stats.stat_smooth.
- Default
span=0.75
instead of2/3
- When using loess smoothing, the control parameter
surface
is
only set to the value'direct'
if predictions will be made
outside the data range.
- Default
-
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 parameterna_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 forgeoms
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
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
First public release