ggpmisc 0.4.0 and ggpp 0.4.0

The main change is the split of package ‘ggpmisc’ into two packages. Starting from this version, package ‘ggpmisc’ focuses only on plot annotations related to model fits and statistical summaries. The new package ‘ggpp’ contains generally useful extensions to the grammar of graphics such as new geometries and position functions. As package ‘ggpmisc’ loads package ‘ggpp’ the migration should have minimal if any impact on users’ code. Package ‘ggpp’ will be most useful to authors of packages that currently import ‘ggpmisc’, including myself. It is good to be aware that the split almost exactly follows the subject matter of the two vignettes previously part of ‘ggpmisc’. When using ‘ggpmisc’, users will notice that some functions have migrated only when consulting the documentation.


The package documentation web site at: includes a changelog.

Compared to ‘ggpmisc’ 0.3.9, the following changes have been introduced. New justification styles have being implemented to complement position_nudge_center(). They are supported in geom_text_linked(), geom_plot(), geom_table(), geom_grob() and geom_marging_grob(). In the current implementation all rows in data should contain the same hjust or vjust value when using the new types of justification described here, this seems reasonable as they compute the individual justification values from the data. All other justification values, either numeric or character do not have this restriction and can be used as in geoms from ‘ggplot2’. These new features may change in the near future.

  • Rename geom_text_linked().
  • Implement justifications "outward_mean", "inward_mean", "outward_median" and "inward_median" so that outward and inward are with respect to the centroid of the data instead of to the middle of the x or y scales. This should be useful in combination with position_nudge_center().
  • Implement justifications "outward_nnn" and "inward_nnn" so that outward and inward are with respect to the number resulting from applying as.numeric() to the characters that replace nnn. For example strings like "outward_0.5", "inward_3e5" or "outward_-3e-2" are supported. This should be useful when manual tweaking is desired. As special cases "outward_0" and "inward_0" apply justification outward and inward with respect to the origin. This should be useful for biplots used for PCA and similar cases with arrows radiating out of the origin. (The "outward" and "inward" justification implemented in ‘ggplot2’ is relative to the middle of the x or y scales.)
  • Revise compute_npcx() and compute_npcy() to support multiple steps per group (needed in ‘ggpmisc’).
  • Fix problem related to "outward" and "inward" justification of text labels when angle aesthetic takes values < -45 or > 45 degrees. This code change alters how old plots are rendered if text labels have been rotated by more than 45 degrees.
  • [‘ggplot2’, ‘ggrepel’] The problem with angle was a “bug” in ‘ggplot2’ also present in ‘ggrepel’. A pull request for ggplot2::geom_text() has been submitted and merged. This is now in the ‘ggplot2’ 3.3.4 milestone retaining consistent behaviour between ‘ggplot2’, ‘ggrepel’, ‘ggpp’ and ‘ggpmisc’.

Please raise issues concerning bugs or enhancements to this package through GitHub at Pull requests are also welcome.


The package documentation web site at: includes a changelog.

Changes from ‘ggpmisc’ version 0.3.9, the most recent CRAN release, are:

  • Add stat_quant_eq() based on quantile regression as implemented in package ‘quantreg’. (enhancement suggested by Mark Neal)
  • Add n.label and n to the values returned by stat_poly_eq() and stat_quant_eq(). (enhancement suggested by a question from ganidat)
  • Add r.squared, adj.r.squared, p.value and n as numeric to values returned in addition to the corresponding character labels when stat_poly_eq() is called with output.type other than numeric. Similarly for n and rho in the case of stat_quant_eq(). (enhancement suggested by a question from Tiptop)
  • Fix bug in stat_poly_eq() leading to empty returned value when data contains too few observations to fit the model. (reported by ganidat)
  • Add support for quantile regression rq, robust regression rlm, and resistant regression lqs and function objects to stat_fit_deviations().

Please raise issues concerning bugs or enhancements to this package through GitHub at Pull requests are also welcome.

Acknowlegements: I thank Kamil Slowikowski for his contributions of ideas and for his willingness to keep the development of our packages coordinated. This update was done in part to address questions raised and reports of bugs by users, which I thank. The tag [ggpmisc] is in use at stackoverflow for questions related to the use these two packages. I thank Mark Neal for the suggestion that lead to the new statistic stat_quant_eq() and for his help during its testing. I thank Stackoverflow users ganidat and Tiptop for enhancement ideas.

Documentation web sites at and include all help pages, with output from all examples, and vignettes in HTML format. The online vignettes include the output of all code examples, while the vignettes as included in the package, contain the output of only a subset of the code examples so as to keep the documentation at a reasonable size for package distribution.

NOTE: The new package ‘ggpp’ (0.4.0)  is in CRAN and updated ‘ggpmisc’ (0.4.0) is on its way to CRAN. The latest development versions of both packages can be installed from GitHub.


Share with

Leave a Reply