gpt4 book ai didi

r - igraph 或 ggnet2 的水平 TreeMap

转载 作者:行者123 更新时间:2023-12-05 01:17:55 25 4
gpt4 key购买 nike

我正在尝试使用 igraphggnet2 从维基百科重现概率 TreeMap ,如下所示。以下是我的开始,

library(igraph)
g <- graph.tree(2^4-1, 2)

library(GGally)
ggnet2(g, label = TRUE, label.size = 3)

随机放置节点,用数字标记它们,边缘没有标签:

enter image description here

相反,我需要像这样重新组织和标记边缘和节点,除了将节点标签放在圆圈内:

enter image description here

最佳答案

这是我的解决方案:

library(igraph)

g <- graph.tree(n = 2 ^ 3 - 1, children = 2)
node_labels <- c("", "P(A)", "P(A')", "P(AB)", "P(AB')", "P(A'B)", "P(A'B')")
edge_labels <- c("P(A)", "P(A')", "P(B|A)", "P(B'|A)", "P(B|A')", "P(B'|A')")

layout <- layout.reingold.tilford(g)
layout <- -layout[,2:1] # rotate layout using negative and
# reverse columns of default
plot(g,
layout = layout, # draw graph as tree
vertex.size = 25, # node size
vertex.color = '#C4D8E2', # node color
vertex.label = node_labels, # node labels
vertex.label.cex = .5, # node label size
vertex.label.family = "Helvetica", # node label family
vertex.label.font = 2, # node label type (bold)
vertex.label.color = '#000000', # node label color
edge.label = edge_labels, # edge labels
edge.label.cex = .7, # edge label size
edge.label.family = "Helvetica", # edge label family
edge.label.font = 2, # edge label font type (bold)
edge.label.color = '#000000', # edge label color
edge.arrow.size = .5, # arrow size
edge.arrow.width = .5 # arrow width
)

这给了我这个,

Horizontal Probability tree

关于r - igraph 或 ggnet2 的水平 TreeMap ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48362636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com