ggspectra 0.3.2

The changes from version 0.3.1, the current CRAN release, are:

  • Make autoplot() the recommended method and deprecate the use of plot(), which remains available for backwards compatibility.
  • Fix bug in autoplot() which failed to set the title to the name of the object when requested.
  • Add ‘ggplot2’ and ‘photobiology’ as required dependencies so that they are automatically loaded when ‘ggspectra’ is loaded.

The justification for renaming the plot() methods to autoplot() is that these methods defined in our package match better those of other specializations of autoplot() than of those of plot(), both in terms of the objects returned (ggplots) and in terms of their role as a fast way of plotting objects belonging to classes defined in independently developed packages. Some years ago, early in the development of ‘ggspectra’ it seemed more natural to use plot as the  method to specialize.

As most of the methods and functions defined take as input objects belonging to classes defined in package ‘photobiology’ and return objects belonging to classes defined in package ‘ggplot2’, these two packages need in most cases to be loaded for ‘ggspectra’ to work as intended.

Documentation web site at

NOTE: The updated package is in CRAN.

Please raise issues concerning bugs or enhancements to this package through Bitbucket at

photobiology 0.9.26

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

  • Move 'tibble' from Imports: to Depends: as the spectral classes are derived from those exported by package 'tibble', making visibility of private specialized methods for tibbles always necessary when using this package.
  • Implement s_mean(), s_median(), s_range(), s_sd(), s_var(), s_sum(), s_prod() and s_mean_se() methods for collections of spectra that operate across spectra returning computed values at each wavelength—i.e. a single computed spectral object.
  • Add support for na.action = "replace" to methods na.omit() and na.exclude().
  • Add parameter na.rm to smooth_spct() methods, with unchanged default behaviour.
  • Fix bug in cps2irrad() not all attributes are copied.
  • Fix bug insmooth_spct(): metadata not copied to returned spectrum.
  • Fix bug in insert_hinges_spct(): metadata not fully copied to returned
  • Implement methods "wexler" and "goff.gratch" for water vapor pressure estimates. Add function water_vp2RH() and water_RH2vp() to compute relative humidity from water VP and air temperature.

Documentation web site at includes all help pages, with output from all examples, and vignettes in HTML format.
NOTE: The updated package is in CRAN.

Please raise issues concerning bugs or enhancements to this package through Bitbucket


Package ‘patchwork’

Operators defined in package ‘patchwork’ can be used to combine multiple plots created with package ‘ggplot2’ or extensions to it, such as my own ‘ggpmisc’ and ‘ggspectra’. (The site ggplot2 extensions showcases at the moment more than 40 extensions to ‘ggplot2’.)

Package ‘patchwork’ has been developed by Thomas Lin Pedersen, and being relatively new, it is not yet in CRAN. It can be installed from the public Git repository at Github.

# install.packages("devtools")

The ‘ggplot2’ package provides a strong API for sequentially building up a plot, but does not concern itself with composition of multiple plots. ‘patchwork’ is a package that expands the API to allow for arbitrarily complex composition of plots by providing mathmatical operators for combining multiple plots. Other packages that address this need (but with a different approach) are ‘gridExtra’ and ‘cowplot’.

From the package’s DESCRIPTION.

Package ‘ggspectra’ provides function multiplot() for this purpose, but this function is minimalistic, with its most important handicap in its inability to independently align the plotting areas and axis labels of the composed plots.

An example using the operators / and & from ‘patchwork’ follows.

p <- autoplot(sun.spct) / 
  autoplot(polyester.spct, range = c(280, 800)) / 
  autoplot(sun.spct * polyester.spct)
png("three-plots.png", height = 800, width = 600)
print(p) & theme_bw()

photobiologyInOut 0.4.19

The main changes from version 0.4.18 the previous CRAN release, are:

  • Track reverted previous code breaking change in ‘readr’ (>= 1.3.0).

Because of a code breaking change in package ‘readr’ this version of ‘photobiologyInOut’ requires ‘readr’ >= 1.3.0 to be installed. Function read_oopi_data() from ‘photobiologyInOut’ < 0.4.19 will not work as expected under ‘readr’ >= 1.3.0. (I thank Jim Hester for making a pull request that solved the problem introduced by the change in ‘readr’.)

Documentation web site at

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

Please raise issues concerning bugs or enhancements to this package through Bitbucket at