R.更改系统发育树状图中的叶子大小

时间:2018-10-02 12:51:33

标签: r plot phylogeny

我正在尝试在R中绘制系统发育树状图。我使用以下代码获得了我想要的东西:

library(igraph)
library(proxy)
library(factoextra)

hc = hclust(dist(mtcars))
dend <- as.dendrogram(hc)

fviz_dend(dend, k = 5,
      repel = TRUE, 
      type ="phylogenic", show_labels=T)

现在,我想增加单个点的大小。根据软件包dendextend,我尝试以以下两种不同的方式添加leaves_cex,但是都没有成功(结果在下面的代码中进行了解释)。

library(dendextend)
fviz_dend(dend, k = 5,
      repel = TRUE, leaves_cex=50,  # circle size is unchanged
      type ="phylogenic", show_labels=T) 

dend <- as.dendrogram(hc,type ="phylogenic") %>%
  set("leaves_cex", 50) %>% #creates a rectangular dendogram, phylogenic layout lost
  plot()

我也可以尝试使用猿包,如下所示。在这里,我可以使用tip.color来指定颜色,但是尖端尺寸/形状没有变量。在这里,布局也不像上面的原始图中那样好。

library(ape)
clus5 = cutree(hc, 5)
plot(as.phylo(hc),type="unrooted", tip.color = clus5 )

如何更改颜色以外的属性的叶子标记外观?

1 个答案:

答案 0 :(得分:2)

使用包ape,通过使用tiplabels函数分别绘制叶子,可以很容易地修改叶子的外观:

## The tree
my_tree <- as.phylo(hc)

## The plot without the tips
plot(my_tree,type = "unrooted", show.tip.label = FALSE)

## The tips (leaves) plotted separately with many options
tiplabels(my_tree$tip.label,
          col = clus5, # Some colours
          cex = 0.5, # The size
          adj = -1, # Position adjustment
          bg = "orange", # A background colour
          frame = "circle" # Some circles
          ) #... Many more options

您可以查看?tiplabels以获得更多信息和选项。