[4.8.0] - 2025-11-05
Added
-
Geometries:
-
geom_pointdensity()[#1370].See: example notebook.
-
Geoms with 1-to-1 statistics (such as
geom_qq(),geom_sina()) preserve the mapping to original data after statistical transformation.See: example notebook.
-
geom_histogram(): custom bin bounds (parameterbreaks) [#1382].See: example notebook.
-
-
Plot Layout:
-
The legend automatically wraps to prevent overlap - up to 15 rows for vertical legends and 5 columns for horizontal ones [#1235].
See: example notebook.
-
gggrid(): support for shared legends (parameterguides).See: example notebook.
-
-
Plot Theme:
-
flavor_standard()sets the theme's default color scheme [#1277].
Use to override other flavors or make defaults explicit.See: example notebook.
-
theme_gray()as an alias fortheme_grey(). -
legend_justificationparameter oftheme()accepts additional string values:'left','right','top', and'bottom'.See: example notebook.
-
Support for inward axis ticks.
See: example notebook.
-
-
Markdown:
- Support for
targetattribute for links. - Links now open in a new tab by default [#1397].
- Support for
-
ggtb():size_zoominandsize_basisparameters for geometry scaling [#1369].See: example notebook.
Changed
-
[BREAKING] Explicit
groupaesthetic now overrides default grouping behavior instead of combining with it [#1401].See: example notebook.
Important
Previously, setting group='variable' would group by both the explicit variable AND any discrete
aesthetics (color, shape, etc.).
Now it groups ONLY by the explicit variable, matching ggplot2 behavior.
Use group=[var1, var2, ...] to group by multiple variables explicitly,
and group=[] to disable any grouping.
-
Missing values in
geom_line(), geom_path(), geom_ribbon(), andgeom_area()create gaps in geometries instead of being interpolated over [#818], [#1406].See: example notebook.
-
theme: theexponent_formatdefault value changed to'pow'- superscript powers of 10 (was e-notation). -
The multi-layer line plot now shows tooltips for each series simultaneously, in the same way that a single-layer plot with color mapped to series does.
Fixed
geom_pieon geospatioal plot withmap_joinfailes to render without explicitgroupaesthetic.- geom_density2d: NullPointerException when weight aesthetic contains None values [#1399].
- Tooltip shows duplicate lines when as_discrete is applied twice to the same var [#1400].
- geom_sina: incorrect shape in legend [#1403].
- geom_density2d: Incorrect processing of weighted statistics when None value occurs in the x or y column.
- facet_wrap: indescriptive error when the specified facet variable is not present in the dataset [#1409].
- Integer numbers in facet strip titles are displayed as float [#1386].
- Error when using scale_identity(aesthetic="shape") [#1212].
- ggsave: theme option face="italic" doesn't work [#1391].
- Fail early if string format is incorrect [#1410].