NEWS
ggforce 0.5.0.9000
ggforce 0.5.0 (2025-06-18)
- Fixed a bug that would cause reordering of data in some geoms (#314)
- The concaveman package is no longer a dependency for
geom_mark_hull() (#308)
- Setting both label and description to
NA will now turn off label drawing for
that mark completely while still drawing the mark
- Fix a bug in
geom_mark_rect() where the mark would not be shown in all
panels (#307)
- Fixed a bug in the
geom_mark_*() geoms where having NA values in the
filter aesthetic would lead to weird errors. NA is now treated as FALSE
(#306)
shapeGrob() is now exported for use by other packages (#303)
- Fix a bug in
geom_autohistogram() that prevented it to be used with
continuous data (#297)
facet_zoom() now throws a better error when used with coord_flip() (#143)
- You can now use
"inherit", "inherit_fill", and "inherit_col" for the
styling of the label box and connector in the geom_mark_*() family of geoms
(#240)
- Prepare for upcoming changes in ggplot2
ggforce 0.4.2 (2024-02-19)
- Fix a documentation issue reported by CRAN
ggforce 0.4.1 (2022-10-04)
- Fixed a sanitizer error in the decent calculations used for the mark geoms
- Fixed a typo bug in the vctrs implementations
ggforce 0.4.0 (2022-09-29)
- Moved to vctrs internally
- Updated error messaging to use cli
geom_diagonal(), geom_diagonal_wide(), geom_parallel_sets(), and
geom_sina() are now bidirectional in the style of ggplot2
geom_mark_*() now works correctly in the presence of NA values in x and
y
- The
zoom, zoom.x, and zoom.y elements now uses proper registration of
theme elements, inheriting from strip.background.
- Fixed bug in
geom_sina() when groups contained less than 3 points
- Fixed bug in
geom_parallel_sets() that erroneously removed grouping
information in some configurations
- Added
jitter_y argument to geom_sina() to control whether y jittering is
performed on integerish y values.
facet_zoom() now works with patchwork
- Fix bug in
geom_mark_ellipse() that caused wrong orientation of ellipses
with groups of two.
gather_set_data() now supports tidyselect.
position_jitternormal() gains a seed argument in parallel to
ggplot2::position_jitter()
geom_sina() now works when the group only have a single unique y value
facet_zoom() now works correctly with transformed scales
facet_wrap_paginate() now works correctly with dir = 'v'
facet_matrix() now supports a labeller
- fix a bug in
geom_parallel_sets_axes() that prevented coloring of axis fill
- fix a bug in
stat_circle() if the x and y aesthetics were inherited from
the global mapping
facet_zoom() now works even when limits are set by the scales
ggforce 0.3.4 (2022-08-18)
- Changed documentation to comply with new units package
- Fixed unintentional re-ordering of shapes (#224)
- Deprecate
scale_[x|y]_unit in favor of units::scale_[x|y]_units
ggforce 0.3.2 (2020-06-23)
- Changes to comply with latest ggplot2 release
- Make sure ggforce pass test even if concaveman is not available
ggforce 0.3.1 (2019-08-20)
- Better fix for gganimate compatibility (#157)
ggforce 0.3.0 (2019-08-09)
- Added
facet_matrix() in order to facet different data columns into different
rows and columns in a grid, in order to make e.g. scatterplot matrices and
pairs plot
- Added
geom_autopoint() and position_auto() to jitter points based on the
type of positional scales in the panel
- Added
geom_autohistogram() and geom_autodensity() for facilitating
distribution plots along the diagonal in a facet_matrix() plot.
- Added
facet_row() and facet_col to have one-dimensional facet_wrap()
with possibility of variable sizing.
- Stats should now always keep the old group variable (potentially with
something added), making them work with gganimate
- Removed the Visual Guide vignette to reduce compilation time. See the
website for an overview of all functionality with compiled examples
(https://ggforce.data-imaginist.com)
ggforce 0.2.2 (2019-04-23)
- Fixed a regression in
geom_sina() where the computation would fail with a
warning due to tolower() being masked (#134, #135).
ggforce 0.2.1 (2019-03-12)
- Fixed a bug in the calculation of open and closed b-splines, where the
interval would exceed the defined region and result in an out-of-bounds memory
error
ggforce 0.2.0 (2019-03-07)
New features
linear_trans for composing linear transformation using rotate, stretch,
shear, reflect, and translate
facet_stereo added for creating stereographic projections
geom_voronoi_[tile|segment], geom_delaunay_[tile|segment|segment2], and
stat_delvor_summary has been added for tesselation and triangulation.
geom_spiro has been added for drawing spirographs
- Add
geom_ellipse for drawing regular and superellipses
- Add
geom_regon for drawing regular polygons
- Add
geom_diagonal, geom_diagonal_wide and geom_parallel_sets for drawing
parallel sets diagrams and other visualizations based on diagonals.
- Add
geom_shape for drawing polygons with rounded corners and
expanded/contracted sides. geom_shape replaces all geom_polygon
internally.
- Added
geom_bspline_closed to draw polygons defined as b-splines
- Add
geom_mark_[rect|circle|ellipse|hull] to encircle a group of points and
optionally add textual annotation to it
- Add
position_jitternormal to jitter points based on a normal distribution
(@andrewheiss)
Improvements
facet_[wrap|grid]_paginate will now try to make panels on the last page the
same size as on full pages (#7)
facet_zoom now gains xlim and ylim arguments to control zoom range
directly
facet_zoom now gains zoom.data to control which data gets plotted in which
panel
- Slimmed down the dependencies for the package.
plyr, lazyeval and dplyr
has all been removed
- Rewrite
geom_sina to match geom_violin and allow for dodging
- Add
open/clamped option to `geom_bspline
Bug fixes
- Fix interpolation of
x and y values in geom_link2 (@thomasp85 and
@lepennec)
stat_link no longer replicates the group column
- arcs and links no longer rename aesthetics when only one aesthetic is present
(
drop = FALSE)
stat_bezier0 and stat_bezier2 now return data in the expected format
- Fix bug with
n_pages due to internal changes in ggplot2
- Fix bug in
facet_zoom in combination with secondary y-axis where the space for
the y-axis would become huge
- Correctly detect and error out when scales and coords does not work with
facet_zoom
- The *2 versions of line geoms no longer adds an
NA to guides.
ggforce 0.1.1 (2016-11-28)
New features
- Zoom indicator styling can now be specified separetely for x and y zoom using
zoom.x and zoom.y in theme (inherits from zoom that inherits from
strip.background)
Bug fixes
- Fix bug in
facet_wrap_paginate that threw errors when using it with free
scales (#19)
- Fixes bug in
facet_zoom where y-axis would be incorrectly displayed when
zooming on both axes without splitting the view (#23)
- Fixes bug in
facet_zoom where scale expansion where not taken into account
when drawing the indicator area (#22)
- Fixes a bug in
facet_zoom that would throw errors with layers not containing
the column that is zoomed by (#21)
ggforce 0.1.0 (2016-11-22)
Major changes
geom_edge_bundle has been renamed geom_bspline and lost the tension
argument. True edge bundle functionality has been moved to ggraph
New features
geom_bezier for drawing quadratic and cubic beziers
geom_link for augmented segment/path drawing
geom_sina as an alternative to geom_violin and geom_beeswarm
scale_[x|y]_unit for using units vectors
facet_[wrap|grid]_paginate to split facetting into multiple pages
facet_zoom for contextual zooming
ggforce 0.0.1
Major changes
New features
geom_arc / stat_arc for drawing circle segments
geom_edge_bundle / stat_edge_bundle for drawing edge bundles based on
control points
geom_arc_bar /stat_arc_bar / stat_pie for drawing arcs and wedges with
fill
geom_circle / stat_circle for drawing circles with radius based on
coordinate system scale
power_trans for creating power transformations
radial_trans for creating transformation between radial and cartesian
coordinates
trans_reverser for reversing a trans object