ggpmisc 0.3.6

Package ‘ggpmisc’ focuses mainly on plot annotations. The new features added in this version required quite minor code changes but add features that I hope will be found useful.

Changes from version 0.3.5 the most recent CRAN release, are:

New

Annotations using NPC coordinates

NPC or native plot coordinates, are very useful for annotations. On the other hand, they are not of any use for plotting actual data. The geometries using this kind of position coordinates defined in ‘ggpmisc’ make it possible to have different annotations in the different panels when using facets. Traditional annotations in ‘ggplot2’ do not use the data, but instead take as arguments constant values for the aesthetics, and consequently add identical annotations to all panels. Annotations in ‘ggplot2’ use data coordinates. In many cases, the desired position of annotations is unrelated to the data, but instead related to the native coordinates of the plotting viewport. Using NPC coordinates for annotations allows consistent positioning, which is very important from the graphical design perspective.

Starting from version 0.3.6  ‘ggpmisc’ exports a modified definition of annotate() from ‘ggplot2’. The modification adds support of the position aesthetics npcx and npcy retaining all other functionality unaltered. As a consequence geometries "text_npc""label_npc""table_npc", "plot_npc", and "grob_npc" can now be used as the first argument to annotate(). In addition single ggplots, data frames and grobs as well as lists of such objects are accepted arguments to label.

library(ggpmisc)

# plot to be inset
p <- ggplot(mtcars, aes(factor(cyl), mpg, colour = factor(cyl))) +
  stat_boxplot() +
  labs(y = NULL) +
  theme_bw(9) + theme(legend.position = "none")

# main plot with p as an inset
ggplot(mtcars, aes(wt, mpg, colour = factor(cyl))) +
  geom_point() +
  annotate("plot_npc", npcx = "left", npcy = "bottom", label = p) +
  expand_limits(y = 0, x = 0)

Tagging equations with group labels (experimental)

Starting from version 0.3.6  stat_poly_eq() supports use of grouping with equations and identifying them by using labels.  Previously use of  the color aesthetic was the only way of “linking” equations to plotted curves, which is frequently distracting or unavailable for printing. After some past failed attempts at implementing this, I recently realized that using a pseudo-aesthetic made implementation very easy and its use flexible and straightforward. The catch is that this relies on undocumented behavior of ‘ggplot2’ and will not necessarily work with future versions of ‘ggplot2’. Statistic stat_poly_eq() now copies grp.label from its input into its returned value. One can map any variable to the pseudo-aesthetic grp.label to achieve this. Values are passed to the output only if all values within the group are the same, otherwise grp.label is filled with NA. The signature of stat_poly_eq() remains unchanged.

library(ggpmisc)

my.formula <- y ~ x

ggplot(mtcars, aes(wt, mpg, 
                   linetype = factor(cyl), shape = factor(cyl),
                   grp.label = factor(cyl))) +
  geom_point() +
  stat_smooth(formula = my.formula, method = "lm", colour = "black") +
  stat_poly_eq(aes(label = stat(paste("bold(\"cyl\"~~", grp.label, 
                                      "*':')~~~", eq.label, sep = ""))), 
               formula = my.formula, label.x = "right", parse = TRUE) +
  theme_classic()

Marking and or labeling group centroids

The new stat_centroid() and stat_summary_xy(). stat_centroid() applies the same function to x and y and this function defaults to mean(). In the case of stat_summary_xy() the functions applied to x and y are passed as separate arguments, and they both default to simply copying their input.

Markdown

Starting from version 0.3.6, statistic stat_poly_eq() can optionally generate character strings encoded in markdown suitable for geom_richtext() from package ‘ggtext’.

Acknowlegement: This update was encouraged by recent questions at stackoverflow. The tag [ggpmisc] is in use at stackoverflow for questions related to this package.

Documentation web site at http://docs.r4photobiology.info/ggpmisc/ includes all help pages, with output from all examples, and vignettes in HTML format.

NOTE: The new version of the package is on its way to CRAN.

Please raise issues concerning bugs or enhancements to this package through Bitbucket https://bitbucket.org/aphalo/ggpmisc/issues.

ggpmisc 0.3.5

This version (0.3.5) adds to geom_table() support for table themes compatible with gridExtra::ttheme_default(). The default table-theme can be changed with function ttheme_set() and several new ttheme constructors are also available as well as support for user defined theme constructors and themes. Changes affect the rendering of tables, and add flexibility to the handling of mapped aesthetics in geom_table()

Note: The default theme for tables in version 0.3.5 uses slightly less padding than in previous versions, and this padding is now proportional to the text’s size instead of fixed. This will not break old code but can slightly change how tables look.

The plots below make use of two of the new table theme constructors. The second plot also uses ggplot2’s theme_dark().

Note: If the full flexibility of ‘gridExtra’ and ‘grid’ are needed for a table, the table can be constructed directly with these packages and added as an inset using geom_grob().

Acknowlegement: This update was encouraged by a recent question at stackoverflow. The tag [ggpmisc] is in use at stackoverflow for questions related to this package.

Documentation web site at http://docs.r4photobiology.info/ggpmisc/ includes all help pages, with output from all examples, and vignettes in HTML format.

NOTE: The new version of the package is on its way to CRAN.

Please raise issues concerning bugs or enhancements to this package through Bitbucket https://bitbucket.org/aphalo/ggpmisc/issues.

ggpmisc 0.3.4

This version (0.3.4) adds to stat_poly_eq() the ability to return F-value and P-value in addition to the equation of the polynomial, R2, AIC and BIC available in earlier versions of ‘ggpmisc’. The package code and examples have been updated to avoid the use of functions and methods that have been deprecated in recent updates to ‘ggplot2’.

library(ggpmisc) # version >= 0.3.4 !!
ggplot(mtcars, aes(x = wt, y = mpg, colour = factor(cyl))) +
  geom_smooth(method="lm") +
  geom_point() +
  stat_poly_eq(formula = y ~ x,
               aes(label = paste(stat(f.value.label), stat(p.value.label), 
                                 sep = "*`,`~")),
               parse = TRUE,
               label.x.npc = "right") +
  theme_bw()

The code above produces the plot below.

Acknowlegement: This update as well as the very start of the development of this package has been triggered by some great questions posted at stackoverflow. These questions and answers can be found with a search for the tag [ggpmisc] at stackoverflow. When asking questions or help related to this package, please tag your question.

Documentation web site at http://docs.r4photobiology.info/ggpmisc/ includes all help pages, with output from all examples, and vignettes in HTML format.

NOTE: The new version of the package is on its way to CRAN.

Please raise issues concerning bugs or enhancements to this package through Bitbucket https://bitbucket.org/aphalo/ggpmisc/issues.

ggpmisc 0.3.3

This version (0.3.3) fixes a bug in stat_poly_eq() introduced in ‘ggpmisc’ 0.3.2 and includes a minor revision to documentation.

Documentation web site at http://docs.r4photobiology.info/ggpmisc/ includes all help pages, with output from all examples, and vignettes in HTML format.

NOTE: The new version of the package is on its way to CRAN.

Please raise issues concerning bugs or enhancements to this package through Bitbucket https://bitbucket.org/aphalo/ggpmisc/issues.