2

我尝试用ggraph包绘制树状图,但是可以,geom_edge_diagonal()但不能geom_edge_elbow()

套餐

library(phyloseq)
library(igraph)
library(ggraph)

获取数据

文件 ps.rds 可在此处获得

https://github.com/sholmes/F1000_workflow/tree/master/data

ps <- readRDS("ps.rds")

EdgeList <- phy_tree(ps)$edge
Tree <- graph_from_edgelist(EdgeList, directed = TRUE)

绘图

ggraph(Tree, 'dendrogram') +
  geom_edge_diagonal()

在此处输入图像描述

此代码有效,但情节不是很漂亮。

现在 :

ggraph(Tree, 'dendrogram', circular = TRUE) +
  geom_edge_elbow()

Error in FUN(X[[i]], ...) : object 'direction' not found

所以我有一些问题:

  1. 为什么它不起作用,因为它适用于其他树状图?
  2. 什么是方向?在包文档中,据说方向是“自动设置的” https://www.rdocumentation.org/packages/ggraph/versions/0.1.1/topics/geom_edge_elbow
  3. 我能找到一些对在 ps 对象中绘图有用的东西吗?

F. Privé 评论后编辑

是的,可以混合dendrogramcircular

ggraph(Tree, 'dendrogram', circular = TRUE) +
  geom_edge_diagonal()

在此处输入图像描述

4

1 回答 1

2

由于某些原因在这里无法讨论,geom_edge_elbow目前仅支持 dedrogram/hclust 对象,不支持 igraph 对象。

我可能会在下一个版本中找到解决方法

于 2017-07-25T13:54:29.863 回答