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

R. Change the leaf size in phylogenic dendogram plot

我正在尝试在 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()

我也可以尝试使用 ape 包,如下所示。在这里我可以指定颜色,tip.color,但没有变量提示 size/shape。这里的布局也没有上面的原图好。

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

除了颜色之外,我如何更改叶标记的外观?

使用包 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 了解更多信息和选项。