Releases: has2k1/plotnine
v0.15.0
API Changes
- Themeables
axis_ticks_pad,axis_ticks_pad_minor,axis_ticks_pad_major,axis_ticks_pad_minor_x,axis_ticks_pad_minor_y,axis_ticks_pad_major_xandaxis_ticks_pad_major_yhave been deprecated. Use themarginparameter ofelement_textwithaxis_text,axis_text_xoraxis_text_yto control the spacing between the axis text and the ticks. (#843) - The
statclass methodsstat.compute_layer,stat.compute_panelandstat.compute_groupare now instance methods and they no longer accept**paramsarguments. Access to the parameters is throughself.params. - The
geomclass methodsgeom.draw_layerandgeom.draw_paneldo no longer accept**paramarguments. Access to the parameters is throughself.params. - Method
geom.draw_groupnow accepts theparamsargument as a dictionary and not**params.
New Features
- Plot Composition is here. Using an intuitive algebra, you can now put combine multiple plots into a single graphic. e.g.
p1 = ggplot(...) p2 = ggplot(...) p3 = ggplot(...) (p1 | p2) / p3
- Using
plot_title_positionandplot_caption_positione.g.You can now position thetheme( plot_title_position="plot", plot_caption_position="plot", )
plot_title,plot_subtitleandplot_captionby alignment them with respect to the plot. (#838) - Gained new label
tagto create a tag for a plot. You can set it withlabse.g.and customise it using these themeableslabs(tag="A")
plot_tagandplot_tag_positionandplot_tag_locatione.g.theme( plot_tag="plot", plot_tag_location="plot", plot_tag_position="topright", )
- Geoms
geom_barandgeom_colhave gained new parameterjustthat controls how the bars align with the axis break point. geom_sinahas gained new parameterstylejust likegeom_violin, which make one-sided (half) sina plots.- Gained the Anscombe Quartet dataset,
anscombe_quartet. - Gained new module
plotnine.helpersto be a place for some helper functions. - Gained new helper function
get_aesthetic_limits. geom_pointgained the ability to handle shapes of the formSequence[tuple[float, float]]e.g.Which declares the vertices of a polygon shape.((-2, -4), (-2, -1), (0, 1), (2, -1), (2, -4), (-2, -4))
Enhancements
- Included datasets
mpg,msleepandmidwestno longer have any of their columns as categoricals. This matches the respective datasets in R. (#913) - When the
widthof the violins ingeom_violinis wider than their normal area, they now overlap with those closest to the origin on top. This makes it possible to create overlapping ridge plots using half violins. legend_keynow inherits frompanel_backgroundand the default themes have been adjusted to rely on this inheritance. So when using the default themes, alteringfillparameter of thepanel_backgroundwill also affect the background of thelegend_key.- The default value for the
guideparameter for the identity scales (scale_*_identity) has been reverted toNone. This means by default using these scales will not generate a legend.
Bug Fixes
- Fixed bug in with the
legend_key_heightthemeable where it wasn’t applied. (#921) - Fixed bug where justifying
axis_text_xandaxis_text_yusing horizontal and vertical alignment did not work as expected. (#927) - Fixed justifying strip_text within the strip_background. (#867)
- Fixed bug where faceting along a column with unused categories could raise an error. (#930)
- Fixed bug where computed aesthetic from
after_scaleare were not applied to the legend. (#926) - Fixed theming of minor x axis ticks.
- Fixed theming of
axis_text,axis_text_xandaxis_text_yso when they can be overriden if previously set toelement_blank(). - Fixed
strip_text_x_backgrounds to always have equal heights andstrip_text_y_backgrounds to have equal widths. This applies to cases where the texts have unequal number of lines or they are rotated but have different lengths. - Fixed the empty space below the plot title (or subtitle) when
strip_text_x_backgrounds are partly or fully aligned within the panel. This space (hole), was not accounted for by any of the themeables. This affectedtheme_xkcdand anythemesettings that tried to slide the text / background into the panel. - Fixed the empty space to the left the right margin when the
strip_text_y_backgrounds are partly or fully aligned within the panel. This space (hole), was not accounted for by any of the themeables. This affectedtheme_xkcdand anythemesettings that tried to slide the text / background into the panel. - Fixed bug in
geom_histogramwhere mapping to theweightaesthetic lead to an error. (#936) - Fixed bug in
geom_vlinewhere you could not map thexinterceptaesthetic to a discrete variable. - Fixed bug in
geom_hlinewhere you could not map theyinterceptaesthetic to a discrete variable. - Fixed bug in all manual scales (
scale_*_manual) where if you setvaluesto adictthen setting the breaks would lead to an error. (#949) - Fixed using
theme_voidwith facetting so that the strip text are always fully within the figure bounds. - Fixed the ordinal color scales
scale_color_ordinal,scale_color_cmap_dscale_fill_ordinalandscale_fill_cmap_dto handle missing (NaNorNone) values. (#953)
v0.14.6
This release prevents plotnine from pulling in scipy v1.16.0 because it does not play well with statsmodels.
v0.14.5
v0.14.4
Bug Fixes
-
Fixed geom_text with adjust_text so that the the arrows are drawn at the same layer (zorder) as the text.
-
Fixed geom_text with adjust_text for some cases where the text are placed outside the panels. #899
-
The default aesthetics and aesthetic parameters of geoms (and stats) are now transformed. So you can now set date values as aesthetic parameters. e.g.
geom_point(y=datetime(2024, 12, 11))
if the y aesthetic is mapped to datetime column in another layer.
-
Fixed bug for matplotlib>3.10 where the
axis_ticks_lengthfor the x-axis had no effect.
v0.14.3
Enhancements
- Got rid of a logging information about the fontsize that is recorded for all plots that have a legend. (#889)
- When using geom_text with adjust_text, some sensible default arrow properties will be applied.
- Changed the threshold number of keys for when the legend is split into multiple columns from 20 to 15. This only applies in the default case when the user does not set the number of rows or columns i.e.
guide_legend(nrow=None, ncol=None). (#757)
v0.14.2
v0.14.1
v0.14.0
API Changes
-
You cannot call
printon a ggplot object to show it. This was deprecated inv0.13.0and it has now been removed. Use ggplot.show() -
The color_space parameter of scale_color_hue now accepts the value
"hlsuv"instead of"husl". The meaning of has not changed, and"husl"is silently accepted. -
Themeables
axis_ticks_direction,axis_ticks_direction_xandaxis_ticks_direction_yhave be deprecated. In their place, the direction of the ticks can be controlled by using +ve, -ve or complex values for theaxis_ticks_length,axis_ticks_length_major,axis_ticks_length_major_x,axis_ticks_length_major_y,axis_ticks_length_minor,axis_ticks_length_minor_x, oraxis_ticks_length_minor_y.
Enhancements
-
The
family,fontstyleandfontweightparameters of geom_text are now aesthetics (#790). -
plotnine now responds to the
fig-width,fig-heightandfig-formatsettings in the meta section of a quarto document. -
ggtitle now accepts
titleandsubtitleas keyword arguments. (#804) -
Gained the option limitsize that makes it possible to display plots of any size.
from plotnine.options import set_option set_option("figure_format", False)
-
For geom_boxplot when the outliers are made invisible by giving them no shape, now they do not affect the limits of the plot. (#814)
-
Made it possile to map an aesthetic value to None. (#791)
-
The signatures for the scale classes now list all the allowed parameters.
New Features
- geom_text has gained new aesthetics
fontvariantandfontstretch.
Bug Fixes
-
Fix layers 3 and above not to overlap the axis lines if there are any (#798).
-
Fixed bug in geom_segment where the lineend parameter was ignored. (#727)
-
Fixed stat_summary_bin to work with continuous
xaesthetic when specifying thebinwidthorbreaks. (#824) -
Fixed PlotnineAnimation not to draw a second legend at the bottom-left corner. (#816)
-
Fixed bug where setting
theme(text=element_blank())would raise and exception. -
Fixed
datetimeandtimedeltascales so they can be expanded by
adding constanttimedeltavalues.
v0.13.6
Bug Fixes
- Fixed geom_label to work with a boxstyle of any following square, circle, darrow, larrow, rarrow, roundtooth or sawtooth.(#779)
Enhancements
- Stopped spurious warnings of the form PlotnineWarning: Failed to apply
after_scalemodifications to the legend. when the after_scale mapping is for another aestetic. - Added width and height as default aesthetics of geom_tile.
v0.13.5
Bug Fixes
- Fixed bug in stat_smooth where you could not set the family when using a glm. (#769)
- Fixed bug in position_dodge2 the widths of the dodged objects were mixed up. (#772)
- Fixed geom_text to work better with adjustText v1.0.0 and above.
- Fixed images generated in quarto so that they have the dimensions (taking the dpi into account) that are specified in theme. (#773)
New
- Added themeable svg_usefonts. (#756)
- Enhancements
- Added palmerpenguins dataset.