User Tools

Site Tools


anadat:cs:fun:sparrow

Nakreslení druhových šipek do ordinace

Funkce sparrow() do ordinačního diagramu (PCA) přidá šipky, které směřují do skóre druhů, zatímco popisky druhů jsou posunuty o chlup dál ve směru šipky. Chlup ja zadán v jednotkách zobrazených na ordinačních osách pomocí argumentu gap= , default je 0,1. Funkce umožňuje nastavit běžné grafické argumenty jako je barva šipek a písma, typ čáry, délka hlavičky šipek, atd.

Soubor .r na stažení zde.

Funkci si můžete nazdrojovat také přímo z webu:

source(url("http://vitsyrovatka.info/lib/exe/fetch.php?media=zpradat:functions:sparrow.r"))
# Description
# -----------
# sparrow() draws species arrows into PCA ordination.
# Arrow heads point into the species scores, while species labels are
# moved forward in the arrow direction by a gap distance. 
# gap is supplied in the ordination axes' units.
 
# Uses vegan:decostand to calculate labels' positions.
 
# Arguments
# ---------
# x - PCA ordination returned by function vegan::rda
# scaling - scaling used in plotting, must be specified, see ?rda
# choices - the axes of the plotted ordination space, default is 1:2. 
# gap - the distance between arrow head and species label in the units used in the ordination diagram.
# col.arrow - colour of arrows
# col.text - colour of labels
# cex - text size
# length - length of the arrow head
# ... further graphical parameters passed into function arrows() or text().
 
sparrow<- function(x, scaling, choices= 1:2, gap= 0.1, 
                   col.arrow= "grey60", col.text= "grey10", cex= 0.7, length= 0.07, ...){
 
  require(vegan)
  sp.sc<- scores(x, display= "species", scaling= scaling, choices= choices)
  add<- decostand(sp.sc, method = "normalize", MARGIN = 1) * gap
 
  arrows(0,0, sp.sc[,1], sp.sc[,2], length = length,
         col= col.arrow, ...)
  text(sp.sc + add, labels= rownames(sp.sc),
       col= col.text, cex= cex, ...)
 
  res<- list(arrows= sp.sc, labels= sp.sc + add)
  invisible(res)
}
 
# Value
# ------
# Function returns list with the coordinates of $arrows and species $labels
# for potential further editing.
 
# Example
# -------
#library(vegan) # attach vegan library
#data(dune) # load example data
#pca<- rda(dune) # calculate PCA
#plot(pca, display= c("sites", "species"), scaling= 1, type= "n")  # plot empty ordination diagram
#sparrow(pca, scaling= 1, cex= 0.75, font=3) # draw species arrows
anadat/cs/fun/sparrow.txt · Last modified: 2017/04/09 08:58 by vitek