- Hot fix for missed bug caused in
extraChIPs
package. Addresses #58- Variables scoped by a function (and not passed to an aesthetic mapping) are now found and evaluated correctly
- Resurgence of an old warning has been suppressed correctly again #33
- The following classes are no longer exported.
FacetSideNull
,FacetSideGrid
,FacetSideWrap
ggplot2
's GeomCol and GeomBar now compute resolution based on panels, and not the entire data as a whole. This may affectggside
plots that use these variant geometries. Set thewidth
parameter manually to retain old figures.ggside
now depends onggplot2 (>3.5.0)
as to make side positional scales work reliably, thelayer
slot of theggplot
object needs to be extended and modified. This slot is only available in the latest version ofggplot2
. Attempting to render aggside
object whose Layout has not been subclassed byggside
may lead to unexpected results.- with
ggplot2 (3.5.0)
, there is slightly more spacing between the y-axis title and the panels when the y-axis is plotted on the right side. This may be attributed to the new guide's system. ggside
's adjacent side scales now operate independently (in support for issue #40, see details in updates section). For example, applyingscale_y_log10()
on aggside
plot with axside
geometry will NOT apply the transform to thexsidey
scale. This is an experimental feature and is subject to change in the future ifggside
can move to a more consistent set of expectations for the side scales.
- Using
coord_cartesian(xlim = <limits>, ylim = <limits>)
will only apply to the main plotting scales and not side panel scales. For instance, usingp + coord_cartesian(xlim = c(0,1))
wherep
is a ggside object with a yside geometry will NOT set the limits on the ysidex scale. If the user wants to control the limits on the side scales, they should usescale_(x|y)side(y|x)_*()
functions. Addresses issue #55 - The
ggside_options
object now inherits fromggproto
instead of a list. - The
ggside_options
defaults arguments are nowNULL
. This will help update the object appropriately without overriding previous options specified throughggside()
. ggside
now subclassesLayout
allowing for better control of how side scales are trained. This feature may be relatively unstable depending on the version ofggplot2
installed.ggside_options
object now has a new argumentrespect_side_labels
which will control spacing given between panels for their axes text labels. See?ggside
for argument options. Note, if theme optionggside.panel.spacing
is smaller than space required for labels, then priority is given to therespect_side_labels
option untilggside.panel.spacing
is greater.ggside
now allows for thetrans
argument of thescale_(x|y)side(y|x)_continuous(...)
functions to be used. Addresses issue #40. This feature is experimental and may be removed depending on howggplot2
develops in the future. Additional helper functions have been added:scale_xsidey_log10()
,scale_ysidex_log10()
scale_xsidey_reverse()
,scale_ysidex_reverse()
scale_xsidey_sqrt()
,scale_ysidex_reverse()
- all
ggside
Geom ggproto objects have their aesthetics changed. For example,GeomXsidebar$required_aes
is set toc("x", "xsidey")
instead ofc("x", "y")
. This is to ensure side panel's respective axis generates its own default scale. With this change, users no longer need to preemptively provide ascale_(x|y)side(y|x)_*()
function. - The following functions have been deprecated
as_ggsideFacet
->ggside_facet
as_ggsideCoord
->ggside_coord
- Much of the syntax for creating a compatible
ggside
layer has been wrapped intoggside_layer
, which is similar toggplot2::layer
except with an additional argumentside
. This will allow users to attempt to make a compatibleggside_layer
object with custom Geom and Stat combinations. Ideally, the user should not have to modify the Geom or Stat directly, as this is handled by subclassing the Layer ggproto class directly. - many of the
ggside
internals have been trimmed down for redundancy, resulting in a smaller package overall.
- fixes issue where
facet_grid(..., scales = "free/free_x/free_y")
was not allowed with certainggside(collaps = "all/x/y")
. This restriction makes sense withfacet_wrap
but notfacet_grid
. Addresses issue #45 - fixes tests so
ggside
is compatible withscales (v1.3.0)
. - adding
cli
as a dependency - added
xside
andyside
variants forgeom_abline
,geom_hline
andgeom_vline
. Addresses issue #48
- The
ggside_options
object now inherits fromggproto
instead of a list. - fixed issue where
facet_wrap(..., scales = "free/free_x/free_y")
prevented the associatedscale_ysidex_*()
/scale_xsidey_*()
functions from plotting the guides. Addresses issue #35 ggside
now provides an informative warning if the user provides free scales to facets but an incompatible argument toggside(collapse = ...)
. This warning will force the collapse parameter to something that will comply with the facet scales specification.ggside
should be more resistant toggplot2
's updates to their default aesthetics.ggplot2 v3.4.0
has included a new default aesthetic that has causedggside
geoms to break. Addresses issue #36
Certain ggside
geometries have the capabilities to use xfill/yfill
or xcolour/ycolour
in place of the normal fill
and colour
aesthetics. This was always meant to provide a separate aesthetic scale to color by. The earlier version of ggside
failed to consider the case when fill
/colour
was specified in the global mapping, and the user passes a new data frame to the ggside
layer that excludes the quoted column. This has been addressed with #28 where if xfill/yfill
are specified, then the global fill
aesthetic is ignored (as well for xcolour/ycolour
and colour
). This fix, however, has exposed a potential breaking change, meaning plots with the following characteristics may not be exactly the same as compared to earlier versions of ggside
(< 0.2.1) :
fill
orcolour
is used in global mappingxfill/yfill
orxcolour/ycolour
(respectively) is used in aggside
layer- both quoted columns for these aesthetics were available in whatever data given to the layer
How this would have worked in the past is that the computed mapping groups would be made on both aesthetics, but only filling or coloring by the ggside
aesthetic. Now, the layer will only fill or color by the ggside
aesthetic - potentially reducing the number of groups made by the plot.
ggside()
gains astrip
argument, allowing forfacet_grid
to plot strips on the main panels as opposed to the default of the side panels. Addresses issue #26- fixed annoying warnings from plot scales when mixing discrete and continuous scales. Addresses issue #33
- added the following
geom_(x|y)side*
variantsgeom_xsidefunction()
,geom_ysidefunction()
geom_xsideline()
,geom_ysideline()
geom_xsidelabel()
,geom_ysidelabel()
stat_xsidefunction()
andstat_ysidefunction()
were added to accompanygeom_(x|y)sidefunction
. This seemed to be a special case in which a stat variant was also needed.geom_abline()
,geom_hline()
, andgeom_vline()
will no longer cause errors when used on aggside
object that hasfacet_wrap()/facet_grid()
in place. Addresses issue #3
- A set of new theme elements have been added to give users more control over how side panels are rendered. Please see
?ggside-theme
for more details. Addresses Feature request #10. - To make way for this change,
ggside
now also modifies theCoord
object. Currently onlyCoordCartesian
,CoordFixed
andCoordTrans
are supported forggside
. - new arguments added to
ggside
:draw_x_on
anddraw_y_on
which will allow the user to specify if the respective axis should be rendered on the main panel or the side panel.
- Properly imported
ggplot2::ggplot_add()
intoggside
such thatggside
methods were available toggplot2
calls. Addresses issue #24. - Re-factored
XLayer
andYLayer
to rely less onggplot2
internalLayer
class. Hopefully fixing issue users may experience betweenggplot2 (3.3.2)
andggplot2 (3.3.5)
. Addresses issue #23.
- Fixed bug where additional messages were printed to the console when using
ggplot2::facet_wrap()
orggplot2::facet_grid()
. Addresses issue #20. - Fixed bug where
geom_xsidetext()
was using the incorrectGeom
parameter. Addresses issue #19.
- fixed bug in which
colour/color
/fill
appear in guides when used asparams
instead of anaes()
mapping. Now these aesthetics, and theirx/y
variants should behave likeggplot2
API. Addresses issue #12. ggside
should now work better with thepatchwork
package. Addresses issue #13.- Fixed 'bug' in which computed aesthetics did not mix well with main panels of class
ContinuousScaleDate
. Extended better control toXLayer
andYLayer
to pull scales from the proper panels instead of using the prototype scales onplot$scales
. Addresses issue #11.
- Various
geom_*side*
have better default calling behavior. Seevignettes("ggside_aes_mapping")
for more details. - Added various functions to help customize side panels.
xsidey
will affect the y-axis of the xside panel, andysidex
will affect the x-axis of the yside panel.scale_xsidey_continuous
scale_xsidey_discrete
scale_ysidex_continuous
scale_ysidex_discrete
- Using proper semantic versioning
- Added documentation examples for the following side geometries:
geom_*sidebar
geom_*sideboxplot
geom_*sidecol
geom_*sidedensity
geom_*sidefreqpoly
geom_*sideline
geom_*sidepoint
geom_*sidesegement
geom_*sidetile
geom_*sideviolin
- Corrected bug where
geom_*sideviolin
was not returningggside_layer
class - Updated
vignette(ggside_basic_usage)
'How its done' section headers
- Initial CRAN release version