I just pushed another couple of new updates to phytools (1, 2).
First, I added two new functions to the namespace, phenogram95
and phyloScattergram. These previously existed in the package
but as options within the plotting function fancyTree.
The phenogram95 method is quite popular, but the 'phylogenetic
scattergram' I'd yet to see used in publication. I have also added some
additionally flexibility to the latter function which perhaps might help it
see some more use.
Second, I created a new S3 method called setMap. On
"densityMap" and "contMap" objects this should work
exactly the same as the
old
setMap function, but it will also work for the
"phyloScattergram" object without having to call a differently
named function.
Here's a demo of the 'new' phyloScattergram function & setMap
S3 method.
First, with some simulated data:
library(phytools)
tree<-pbtree(n=26,tip.label=LETTERS)
V<-matrix(c(
1.0,0.7,0.0,
0.7,1.4,0.0,
0.0,0.0,0.5),3,3)
X<-sim.corrs(tree,V)
object<-phyloScattergram(tree,X,fixed.lims=TRUE)
## Computing multidimensional phylogenetic scatterplot matrix...
object
##
## Object of class "phyloScattergram" for 3 continuous traits.
## To replot enter "plot(object_name)" at the prompt.
object<-setMap(object,c("yellow","black"))
plot(object,ftype="off")
Next, here are some real data that I pulled off of Dryad:
liolaemus<-read.tree(file=
"https://datadryad.org/bitstream/handle/10255/dryad.169645/liolaeminipl.phy")
liolaemus<-drop.tip(liolaemus,c("ctenads","pymsom","pymzap",
"pympal","pympun"))
iguanids<-read.csv(file=
"https://datadryad.org/bitstream/handle/10255/dryad.169644/iguanids.csv",
row.names=1)
liol.data<-iguanids[liolaemus$tip.label,c(1,3)]
liol.data$TAL<-as.numeric(liol.data$TAL)
liol.data$residTAL<-
phyl.resid(liolaemus,x=as.matrix(liol.data[,1,
drop=FALSE]),Y=as.matrix(liol.data[,2,
drop=FALSE]))$resid
liolaemus<-paintSubTree(liolaemus,
Ntip(liolaemus)+1,"1")
object<-phyloScattergram(liolaemus,
liol.data[,c(1,3)],plot=FALSE)
## Computing multidimensional phylogenetic scatterplot matrix...
object<-setMap(object,invert=TRUE)
plot(object,colors=setNames("blue",1),
ftype="off")
Neat.
Hi Liam,
ReplyDeleteThis is great. Wondering how to set the colour of tips (e.g. via character strings) in the phylomorphospace plots produced by phyloScattergram()?
Thanks!
Ben