我正在尝试从一个hclust
对象中绘制一个树状图,ggtree
但我不断收到相同的错误消息:
Error: `data` must be a data frame, or other object coercible by `fortify()`, not an S3 object with class hclust
我一直在广泛寻找解决方案,但没有找到。此外,我了解到它ggtree
确实支持 hclust
对象,这让我更加困惑。从这里:
ggtree 包支持 R 社区中定义的大多数层次聚类对象,包括和
hclust
以及dendrogram
以及cluster包中定义的对象。agnes
diana
twins
我从上面的链接中借用了一个可重现的示例:
hc <- hclust(dist(mtcars))
p <- ggtree(hc, linetype='dashed')
这又给了我上述错误。如果我rlang::last_error()
用来获取一些上下文,我会得到:
<error/rlang_error>
`data` must be a data frame, or other object coercible by `fortify()`, not an S3 object with class hclust
Backtrace:
1. ggtree::ggtree(hc, linetype = "dashed")
3. ggplot2:::ggplot.default(...)
5. ggplot2:::fortify.default(data, ...)
如果我使用 rlang::last_trace() 来获取更多信息:
<error/rlang_error>
`data` must be a data frame, or other object coercible by `fortify()`, not an S3 object with class hclust
Backtrace:
x
1. \-ggtree::ggtree(hc, linetype = "dashed")
2. +-ggplot2::ggplot(...)
3. \-ggplot2:::ggplot.default(...)
4. +-ggplot2::fortify(data, ...)
5. \-ggplot2:::fortify.default(data, ...)
但我真的可以看出什么是错的......