我试图通过权重(在这种情况下相当于节点的宽度)和它的高度来调整树的节点大小。为此,我同时使用tidygraph
和ggraph
。
例如,如果我创建一些数据并将其转换为tidygraph
对象,然后我可以使用ggraph
. 如果我只使用weight
参数(在ggraph
调用中),我会得到如下图:
library(tidygraph)
library(ggraph)
# create some data
nodes <- tibble(
var = c("x4", "x1", NA, NA, NA),
size = c( 100, 65, 50, 15, 35)
)
edges <- tibble(
from = c(1,2,2,1),
to = c(2,3,4,5)
)
# turn in tidygraph object
tg <- tbl_graph(nodes = nodes, edges = edges)
# plot using ggraph
ggraph(tg, "partition", weight = size) +
geom_node_tile(aes(fill = var)) +
geom_node_label(aes(label = size, color = var)) +
scale_y_reverse() +
theme_void()+
theme(legend.position = "none")
这通过参数缩放树节点的宽度nodes$size
。但是,如果我尝试同样的事情,除了我用 替换weight
参数height
,那就是:
# plot using ggraph
ggraph(tg, "partition", height = size) +
geom_node_tile(aes(fill = var)) +
geom_node_label(aes(label = size, color = var)) +
scale_y_reverse() +
theme_void()+
theme(legend.position = "none")
我得到一个省略第一个节点的图(如下所示)和以下错误:
警告消息:在 hierarchy$height[edges[, node_col]] <- height :
要替换的项目数不是替换长度的倍数
我想以某种方式将 theweight
和height
arguments 组合成一个情节。
我尝试通过将height
论点放入美学中来进行实验,geom_node_tile
如下所示:
ggraph(tg, "partition", weight = size) +
geom_node_tile(aes(fill = var, height = size/100)) +
geom_node_label(aes(label = size, color = var)) +
scale_y_reverse() +
theme_void()+
theme(legend.position = "none")