A Grammar of Graphics for Python
Bug Fixes
Enhancements
after_scale
modifications to the legend. when the after_scale mapping is for another aestetic.Bug Fixes
New
Bug Fixes Fixed regression in v0.13.3 where setting some text elements element_blank led to an error. #764
This is a small bug fix release.
Bug Fixes
strip_text
when there is no strip_background
. (#760)guide_legend
text to be right. (#761)plot_title
, plot_subtitle
, plot_caption
, axis_title_x
, axis_title_y
to work with float values in the range [0, 1]
.This release has a single enhancement. When drawing a plot, pandas copy-on-write is turned off. This prevents errors for users who have turned it on. A later release will make plotnine capable of working with copy-on-write on.
Requires python >= 3.9
Using the print
or repr
functions to draw and show the plot has been deprecated. Use ggplot.show().
The name of the calculated aesthetic of stat_function
changed from y
to fx
.
stat_ecdf
has gained the pad
parameter. The default is set to True
, which pads the domain with -inf
and inf
so that the ECDF does not have discontinuities at the extremes. To get the behaviour, set pad
to False
. (#725)
Removed the environment parameter from ggplot
.
When a ggplot object is the last in a jupyter cell, the output image will not be followed by string meta information about the figure/image.
This will happen even if the backend is set to an interactive one.
If you set the backend to an interactive one, use show
to draw the plot.
The default horizontal alignment for the plot title is center if it there is no subtitle. When there is a subtitle, the default is to have both aligned to the left.
Some parameters that control the look and feel of guide_colorbar
and guide_legend
have been removed. For their place, the theme
parameter has been introduced and it gives better control of the look and feel.
Themeables legend_entry_spacing
, legend_entry_spacing_x
and legend_entry_spacing_y
have been renamed to legend_key_spacing
, legend_key_spacing_x
and legend_key_spacing_y
respectively
facet_grid
now accepts two parameters, rows
and cols
, to specify the variables along the two dimensions of the panels.
The previous way of using a single parameter will still work if it is a string. For cases where the value was a list, e.g.
facet_grid(facets=["col1", "col2"])
can be rewritten as any one of;
facet_grid("col1", "col2")
facet_grid(["col1"], ["col2"])
facet_grid(rows="col1", cols="col2")
facet_grid(rows=["col1"], cols=["col2"])
The facets
parameter in facet_wrap
has also changed to a more straight forward specification for the column variables. It expects a single string or a list/tuple of strings. (#545)
However, the R-style formula strings are still silently accepted.
Added symmetric logarithm transformation scales scale_x_symlog
and scale_y_symlog
Gained themeables
to set the plot margin on each side independently.
Gained themeables
axis_ticks_length_major_x
axis_ticks_length_major_y
axis_ticks_length_minor_x
axis_ticks_length_minor_y
to control the x & y axis ticks length.
Gained themeables
to control the x & y tick padding.
Some parameters in element_text
can now accept lists/tuples to set the values on individual text objects. (#724)
Gained the option figure_format
to set the format of the inline figures in an interactive session.
e.g.
from plotnine.options import set_option
set_option("figure_format", "svg")
will output all subsequent figures in svg format.
Improved support for customizing guides/legends.
You can now add a frame to the colobar
You can now apply themes to individual guides, e.g.
+ guides(color=guide_colorbar(theme=theme_xkcd()))
or
+ guides(color=guide_legend(theme=theme_minimal())
You can now place legends at more than one position around the panels. e.g.
+ guides(
color=guide_colorbar(position="left"),
fill=guide_legend(position="bottom"),
size=guide_legend(position="bottom")
)
Puts the fill
and size
guides at the bottom, and the color
guide on the left.
You can easily justify the legend along the four edges of the space around the panel area.
You can now place the legend inside the panels with easily control its location.
The space
parameter of facet_grid
now responds to the values free
, free_x
and free_y
to have panels whose relative width and/or height depends on the data range. (#545)
Fixed handling of minor breaks in scale_continuous
to accept numpy arrays and when the scale has a transform, that the minor breaks are supplied in user space and not transform space. Just like the major breaks. (#685)
Fixed theming of axis_ticks with the size parameter. (#703)
Fixed space handling around axis_label
, axis_text
and axis_ticks
when the ticks are turned off.
Fixed bug in geom_path
where the lineend parameter was ignored. (#727)
Fixed bug where theme(legend_background=element_blank())
messed up the position of the legend, instead of only removing the background.
Fixed using facet_grid
with a column named key
. (#734)
Fixed using legend when using an identity scale and reordering the breaks. (#735)
Fixed drawing the upper outline of geom_ribbon
. (#728)
Fixed issue where the gridlines overlap the panel border. (#638)
This is a maintenance release with a few changes, see the changelog.
A maintenance release. See changelog.
This release is exactly the same as the last one (v0.12.1), except that it requires 0.9.0 <= mizani < 0.10.0
, whereas the last one requires 0.9.0 <= mizani
.