Plot options for jnd2xyz objects.

jndplot(x, arrow = c("relative", "absolute", "none"), achro = FALSE,
  arrow.labels = TRUE, arrow.col = "darkgrey", arrow.p = 1,
  labels.cex = 1, margin = "recommended", square = TRUE, ...)



(required) the output from a jnd2xyz call.


If and how arrows indicating receptor vectors should be drawn. Options are 'relative' (default), 'absolute' or 'none'. See description.


Logical. Should the achromatic variable be plotted as a dimension? (only available for dichromats and trichromats, defaults to FALSE).


Logical. Should labels be plotted for receptor arrows? (defaults to TRUE)


color of the arrows and labels.


scaling factor for arrows.


scaling factor for arrow labels.


accepts either 'recommended', where the function will choose margin attributes, or a numerical vector of the form c(bottom, left, top, right) which gives the number of lines of margin to be specified on the four sides of the plot. (Default varies depending on plot dimensionality).


Logical. Should a square plotting area be used? (defaults to TRUE)


additional parameters to be passed to plot, arrows and link{persp} (for 3D plots).


Creates a plot, details of the plot depend on the input data.


the arrow argument accepts three options:

  • 'relative': With this option, arrows will be made relative to the data. Arrows will be centered on the data centroid, and will have an arbitrary length of half the average pairwise distance between points, which can be scaled with the arrow.p argument.

  • 'absolute': With this option, arrows will be made to reflect the visual system underlying the data. Arrows will be centered on the achromatic point in colorspace, and will have length equal to the distance to a monochromatic point (i.e. a color that stimulates approximately 99.9 the arrow.p argument, in which case they cannot be interpreted as described.

  • 'none': no arrows will be included.


Pike, T.W. (2012). Preserving perceptual distances in chromaticity diagrams. Behavioral Ecology, 23, 723-728.


data(flowers) <- vismodel(flowers) <- coldist(
#> Warning: Quantum catch are relative, distances may not be meaningful
propxyz <- jnd2xyz( plot(propxyz)