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 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

ggpmisc 0.3.2

This version (0.3.2) adds as new features scales and statistics that help with the creation of volcano and quadrant plots, such as used with transcriptomics and metabolomics data. A few rough edges remaining in the features added in versions 0.3.0. and 0.3.1 have been polished out. Two issues raised in Bitbucket about the documentation, highlighted some incomplete explanations. These explanations have now been expanded. One important change to the documentation of statistics whose returned values may change depending on arguments is the addition of an example of the use of geom_debug() from package ‘gginnards’ showing how to print to the R console the data returned by statistics, which is the input received by the paired geometries. The User Guide needs still some work, scheduled for the next release. Package documentation is available at as a web site.

Plots created using the new statistics and scales are shown below. In the quadrant plot, which observations were labelled and highlighted was decided automatically based on local 2D density. Counts for each quadrant are computed on the fly. As the plot is non-the-less created using the grammar of graphics, little if any of the flexibility of ‘ggplot2’ is lost.

Quadrant plot created with packages ‘ggplot2 (3.2.1)’, ‘ggpmisc (0.3.2)’ and ‘ggrepel (0.8.1)’.
Volcano plot created with packages ‘ggplot2’, ‘ggpmisc’ and ‘ggrepel’ (very small p-values have been squished to the top edge of the plotting area).

NOTE: The new version of ‘ggpmisc’ is on its way to CRAN.

Tidy time series: ‘tsibble’ and ‘feasts’

This post is not to announce something related to my own packages, but to highlight Rob Hyndman’s new packages for working with time-series data using a tidy approach. If you have to deal with time series in R, you should have a look at these packages and read the posts with examples of their use at the Hyndsight blog.

I suspect more is to come soon, but for the time being have a look at what Rob Hyndman wrote yesterday and today in his blog.


ggpmisc 0.3.1

After the previous major update to ‘ggpmisc’ (0.3.0), a follow up (0.3.1) with multiple new features and smoothed rough edges for some of the features added in version 3.0.0. Package documentation is available at as a web site.

The enhancements in this and the previous update to ‘ggpmisc’ are made possible by changes to ‘ggplot2’ (>= 3.0.0) made while adding support for sf (simple features).

The functions in ‘ggpmisc’ (>= 0.3.1) are related to different kinds of annotations and insets in ggplots. Annotations of plots with fitted-model equations, fit diagnosis, ANOVA and summary tables, highlighting and labelling of peaks and valleys in curves, and local density-based highlighting or labelling in scatter plots. Additionally specializations of the ggplot() constructor allow on-the-fly conversion of time-series. Two new geoms join geom_table() added in version 0.3.0, geom_plot() and geom_grob(). These three geoms make it possible to add tables, ggplots and arbitrary graphical objects (grobs) as insets to plots respecting the the Grammar of Graphics paradigm.

Inset plot showing means per group.
Inset grobs

A set of new geometries produce marginal annotations: geom_x_margin_point(), geom_y_margin_point(), geom_x_margin_arrow(), geom_y_margin_arrow(), geom_x_margin_grob() and geom_y_margin_grob().

Marginal “points” showing means per group.

Another novel feature is based on the addition of two new aesthetics npcx and npcy, the corresponding scales scale_npcx_continuous() and scale_npcy_continuous(), and several new geometries that make use of then: geom_text_npc(), geom_label_npc(), geom_table_npc(), geom_plot_npc() and geom_grob_npc(). These allow to position insets and annotations relative to the dimensions of the plotting area instead of using native data units. Using "npc" units is more natural for labels or insets that are not directly related to data but that look better if positioned consistently across multiple panels or multiple separately produced plots. One improvement to the stats from earlier versions of ‘ggpmisc’ is the use of these new geoms to achieve more consistent location for insets and labels.

Quadrant counts with panels.
Fitted equations in panels with free y limits.
Inset tables at different positions in different panels.

As in the announcement of the previous version, I have included some example plots taken from the documentation of the package. In all cases annotations are generated automatically, but formatting is flexible.

NOTE: The new version of ‘ggpmisc’ will be soon submitted to CRAN .