colspace: Model spectra in a colorspace

View source: R/colspace.R

colspaceR Documentation

Model spectra in a colorspace


Models reflectance spectra in a colorspace. For information on plotting arguments and graphical parameters, see plot.colspace().


  space = c("auto", "di", "tri", "tcs", "hexagon", "coc", "categorical", "ciexyz",
    "cielab", "cielch", "segment"),
  qcatch = NULL,



(required) quantum catch color data. Can be either the result from vismodel() or independently calculated data (in the form of a data frame with columns representing quantum catches).


Which colorspace/model to use. Options are:

  • auto: if data is a result from vismodel(), applies di, tri or tcs if input visual model had two, three or four cones, respectively.

  • di: dichromatic colourspace. See dispace() for details. (plotting arguments)

  • tri: trichromatic colourspace (i.e. Maxwell triangle). See trispace() for details. (plotting arguments)

  • tcs: tetrahedral colourspace. See tcspace() for details. (plotting arguments)

  • hexagon: the trichromatic colour-hexagon of Chittka (1992). See hexagon() for details. (plotting arguments)

  • coc: the trichromatic colour-opponent-coding model of Backhaus (1991). See coc() for details. (plotting arguments)

  • categorical: the tetrachromatic categorical fly-model of Troje (1993). See categorical() for details. (plotting arguments)

  • ciexyz: CIEXYZ space. See cie() for details. (plotting arguments)

  • cielab: CIELAB space. See cie() for details. (plotting arguments)

  • cielch: CIELCh space. See cie() for details. (plotting arguments)

  • segment: segment analysis of Endler (1990). See segspace() for details. (plotting arguments)


Which quantal catch metric is being inputted. Only used when input data is NOT an output from vismodel(). Must be Qi, fi or Ei.


additional arguments passed to cie() for non vismodel() data.


Rafael Maia

Thomas White


Smith T, Guild J. (1932) The CIE colorimetric standards and their use. Transactions of the Optical Society, 33(3), 73-134.

Westland S, Ripamonti C, Cheung V. (2012). Computational colour science using MATLAB. John Wiley & Sons.

Chittka L. (1992). The colour hexagon: a chromaticity diagram based on photoreceptor excitations as a generalized representation of colour opponency. Journal of Comparative Physiology A, 170(5), 533-543.

Chittka L, Shmida A, Troje N, Menzel R. (1994). Ultraviolet as a component of flower reflections, and the colour perception of Hymenoptera. Vision research, 34(11), 1489-1508.

Troje N. (1993). Spectral categories in the learning behaviour of blowflies. Zeitschrift fur Naturforschung C, 48, 96-96.

Stoddard, M. C., & Prum, R. O. (2008). Evolution of avian plumage color in a tetrahedral color space: A phylogenetic analysis of new world buntings. The American Naturalist, 171(6), 755-776.

Endler, J. A., & Mielke, P. (2005). Comparing entire colour patterns as birds see them. Biological Journal Of The Linnean Society, 86(4), 405-431.

Kelber A, Vorobyev M, Osorio D. (2003). Animal colour vision - behavioural tests and physiological concepts. Biological Reviews, 78, 81 - 118.

Backhaus W. (1991). Color opponent coding in the visual system of the honeybee. Vision Research, 31, 1381-1397.

Endler, J. A. (1990) On the measurement and classification of color in studies of animal color patterns. Biological Journal of the Linnean Society, 41, 315-352.



# Model a dichromat viewer in a segment colourspace <- vismodel(flowers, visual = "canis") <- colspace(, space = "di")

# Model a honeybee viewer in the colour hexagon <- vismodel(flowers,
  visual = "apis", qcatch = "Ei", relative = FALSE,
  vonkries = TRUE, achromatic = "l", bkg = "green"
) <- colspace(, space = "hexagon")

# Model a trichromat (the honeybee) in a Maxwell triangle <- vismodel(flowers, visual = "apis") <- colspace(, space = "tri")

# Model a tetrachromat (the Blue Tit) in a tetrahedral colourspace <- vismodel(flowers, visual = "bluetit") <- colspace(, space = "tcs")

# Model a housefly in the 'categorical' colourspace <- vismodel(flowers, visual = "musca", achro = "md.r1") <- colspace(, space = "categorical")

pavo documentation built on Sept. 24, 2023, 5:06 p.m.