I just vectorized
add.arrow
. This means that more than one arrow can be added to a your plotted tree at a time - although these arrows must be of the same color.
Here's how it works:
library(phytools)
data(anoletree)
par(bg="#f2f2f2")
plotTree(anoletree,type="fan",fsize=0.7)
add.arrow(anoletree,tip=c("Anolis_cuvieri","Anolis_krugi",
"Anolis_pulchellus","Anolis_poncensis","Anolis_stratulus",
"Anolis_evermanni","Anolis_cooki","Anolis_cristatellus",
"Anolis_gundlachi","Anolis_occultus"),lwd=6,arrl=1)
add.arrow(anoletree,tip="Anolis_cuvieri",col="green",
lwd=4,arrl=1)
add.arrow(anoletree,tip=c("Anolis_krugi","Anolis_pulchellus",
"Anolis_poncensis"),col="#E4D96F",lwd=4,arrl=1)
add.arrow(anoletree,tip=c("Anolis_stratulus","Anolis_evermanni"),
col="darkgreen",lwd=4,arrl=1)
add.arrow(anoletree,tip=c("Anolis_cooki","Anolis_cristatellus",
"Anolis_gundlachi"),col="brown",lwd=4,arrl=1)
add.arrow(anoletree,tip="Anolis_occultus",col="darkgrey",
lwd=4,arrl=1)
legend(x="topleft",c("crown-giant","grass-bush","trunk-crown","trunk-ground",
"twig"),pch=22,pt.bg=c("green","#E4D96F","darkgreen",
"brown","darkgrey"),cex=0.9,
pt.cex=2,title="PR ecomorphs",bty="n")
That's it.