ordipointlabel {vegan}R Documentation

Ordination Plots with Points and Optimized Locations for Text


The function ordipointlabel produces ordination plots with points and text label to the points. The points are in the exact location given by the ordination, but the function tries to optimize the location of the text labels to minimize overplotting text. The function may be useful with moderately crowded ordination plots.


ordipointlabel(x, display = c("sites", "species"), choices = c(1, 2),
   col = c(1, 2),  pch = c("o", "+"), font = c(1, 1), 
   cex = c(0.8, 0.8), add = FALSE, ...)


x A result object from ordination.
display Scores displayed in the plot.
choices Axes shown.
col, pch, font, cex Colours, point types, font style and character expansion for each kind of scores displayed in the plot. These should be vectors of the same length as the number of items in display.
add Add to an existing plot.
... Other arguments passed to points and text.


The function uses simulated annealing (optim, method = "SANN") to optimize the location of the text labels to the points. There are eight possible locations: up, down, sides and corners. There is a weak preference to text right above the point, and a weak avoidance of corner positions. The exact locations and the goodness of solution varies between runs, and there is no guarantee of finding the global optimum. The optimization can take a long time in difficult cases with a high number of potential overlaps. Several sets of scores can be displayed in one plot.

The function is modelled after pointLabel in maptools package (which has chained dependencies of S4 packages).


The function returns invisibly an object of class ordipointlabel with items xy for coordinates of points, labels for coordinates of labels, items pch, cex and font for graphical parameters of each point or label. In addition, it returns the result of optim as an attribute "optim". The unit of overlap is the area of character "m", and with variable cex it is the smallest alternative. The result object inherits from orditkplot result, and can be replotted with its plot command. It may be possible to further edit the result object with orditkplot, but for good results it is necessary that the points span the whole horizontal axis without empty margins.


The function is designed for ordination graphics, and the optimization works properly with plots of isometric aspect ratio.


Jari Oksanen


See pointLabel for references.

See Also

pointLabel for the model implementation, and optim for the optimization.


ord <- cca(varespec)

[Package vegan version 1.16-32 Index]