Ploting continuous caracter on a phylogenetic tree


I study comparative biology and have been trying to estimate ancestral character states for continuous characters using the package phytools.

The optimization of the characters is perfect but I have problems editing the outcome image. My main goal is that all the branches have the same length, right now I am getting random lengths as in the attached image.

Here's the code I'm using:

obj<-contMap(tree, cont.charac, plot=FALSE)

I have tried using the argument "use.edge.length = FALSE" with no success. And have also tried other commands as "plot.phylo" and "plotTree", for which I got the error message: found less than 2 tips in the tree.

Thanks a lot for your consideration.
Best regards,


Less is more. Stay pure. Stay poor.
Sorry, I am not familiar with the program.

Well they seem to have a standardized length. Why do you want the branches to have the same overall length, aesthetics?

Some regression tree programs make lengths representative of some value characteristic of the splits contributions. So I can see the benefit of having standardized or lengths based on a formula - but just for cosmetic reasons seems troublesome for interpretation without justification in the Figure Legend.
Thanks, I did'n think of this possibility!

I don't think it is the case though, because I have 14 of these optimizations (of different characters) and the tree shows the same structure. I think that it is rather a fixed topology in which the species sort of 'fall behind' as they diverge.

As the default topology seems to be an aesthetic option, I would prefer the branches to be symetric (mainly because I need to fit all the reconstructions into one page).


Less is more. Stay pure. Stay poor.
Is this paper for a journal? If so, I would look at prior comparable published images and see if you really need to modify your figure. I think it looks fine and forcing it to end at the same place could mislead a reader to assume each terminal node has the same number of ancestors. I can't make out the content, so I am at a lose when knowing if certain things transpired at the same time or if certain thing require greater weight.

Big picture, I don't see an issue here and even if I did - I don't know the program. Good luck and perhaps others may chime in!


Super Moderator
Try the package "picante" and the functions:

branch.lengths and


These might be what you are looking for.