- Some internals in
layer_factory()
have been reimplemented to avoid making copies of ggplot2 functions at compile time. This should make things more stable when updating ggplot2 but not updating ggformula. - Two new graphing functions were added:
gf_ellipse()
andgf_ecdf()
gf_rugx()
andgf_label()
have been modified a bit to make them easier to use.- Evaluation environments are now handled more stably. Instead of using the environment
of the formula, the
environment
argument is used. After some delay, this completes the migration to ggplot2 version 2.2 (#96, #125) - Bug fix in
gf_dist()
to avoid an error when usingparams
. (#119) - Default in
gf_errorbar()
is nowinherit = TRUE
. The old default was required due to inconvenient naming of aesthetics ingeom_errorbar()
, but those names have been changed now. (#120) - New function:
discrete_breaks()
.
This release includes a few minor improvements, including
- Updated examples so they work better with pkgdown
- Other document improvements
ggformula
now requiresggplot2 (>= 3.0.0)
. This should take care of issues in 0.8.0 whenggplot2
was upgraded after upgradingggformula
.pkgdown
website created at https://projectmosaic.github.io/ggformula/- Several horizontal versions of geom and stats are implemented using
ggstance
. vdiffr
is used for testing plot output
-
The internals of all of the
gf_
functions have been modified to make them work withggplot2
version 2.3. In future releases, a versionggplot2
at least this new will be required. -
The default value for
se
ingf_smooth()
has been changed fromTRUE
toFALSE
. -
gf_sf()
added to support simple features data for maps. -
improved documentation and examples
- Formulas of the shape
y ~ .
can be used for plots that require ay
aesthetic but nox
aesthetic. - Added
gf_rugx()
andgf_rugy()
. Also additional examples using rugs are given in the documentation. - Added
gf_polygon()
for simple maps. (Improved mapping capabilities should be coming whenggplot2
hits version 2.3.) - Some internals have been reworked to improve the processing of arguments and deciding when to display the quick help for plotting functions.
- Modifications to the environments in which some functions are evaluated.
- Improved scoping of
gf_
functions makes it easier to work with data in the global environment. - New functions
gf_props()
andgf_percents()
added to simplify creating bar graphs on a proportion or percent scale. - New arguments
xlab
,ylab
,title
,subtitle
, andcaption
added togf_
functions. In the case ofgf_props()
andgf_percents()
these are prepopulated with defaults of "proportion" and "percent" to give nicer labeling of the plot. - The use of
weatherData
has been removed since that package is no longer on CRAN - Improvements to
gf_abline()
,gf_hline()
, andgf_vline()
expand the usable portion of the API. - Additional examples for some functions.
Minor update primarily to support vignette data sets moving from StatisticalModeling
to
mosaicModel
.
- Also added
gf_fitdistr()
.
Mostly minor changes:
- Improved documentation of gf_ functions.
- na.warn() is now re-exported.
- Bug fix in gf_violin().
- Reformatted quick help messages.
For version 0.5, the internals of ggformula
have been largely redesigned to allow
implementation of some new features. The new version relies much less on string parsing.
-
Some important changes to formula parsing include
attribute:value
andattribute::expression
are no longer supported within the main formula.- In exchange, things like
gf_point(1:10 ~ 1:10)
work, making it simpler to create on the fly plots without having to build a data frame first. y ~ 1
is equivalent to~ y
in functions that allow the~ y
formula shape. Example:gf_histogram(age ~ 1)
andgf_histogram( ~ age)
are equivalent
-
Some new functions have been added
gf_dist()
can plot distributionsgf_dhistogram()
plots density histograms by defaultgf_ash()
creates ASH plots
-
df_stats()
has been improved to handle one-sided formulas better. -
Secondary layers are now able to inherit both data and formula-defined attributes from the primary layer. Use
inherit = FALSE
if you don't want inheritance. (A few functions haveinherit = FALSE
as their default because it seems unlikely that inheriting will be desireable.)
Version 0.4.0 constitutes a stable beta release. Changes to the API are still possible, but more likely future changes will focus on expansion of the suite of functions supplied, changes to the internal implementation, and improved documentation.
- Separated
ggformula
fromstatisticalModeling
. - Added support for many more geoms.
- Improved parsing of formulas. This is still a bit clunky since the order of operations in R formulas does not match what we would prefer in this package.
data
may now be an expression (likedata = KidsFeet %>% filter(sex == "G")
)- Added support for geoms that have different required aesthetics.
- Added support for functions that allow more than one formula shape. Example:
gf_histogram()
accepts formulas with shape~ x
ory ~ x
. This makes it possible to create density histograms withgf_histogram()
. - Parentheses now halt parsing of formulas. This allows for on-the-fly computations in formulas. Typically these computed expressions must be within parentheses to avoid formula expansion.
- Use
::
to indicate mapping aesthetics. (:
will autodetect, but only if the value is the name of a variable in the data set.) This should be considered experimental. - Added wrappers
gf_lims()
,gf_labs()
,gf_theme()
,gf_facet_grid()
,gf_facet_wrap()
- Added
gf_refine()
which can be used to pass by chaining anything that would have been "added" in ``ggplot2` - Expanded and improved vignette describing use of the package.
- Added two tutorials.
- Added "quick help" for plotting functions.
- Added
gf_lm()
, which isgf_smooth()
withmethod = "lm"
- Added
gf_dens()
which isgf_line()
withstat = "density"
.