R 可视化图形和标签对齐
代码R 可视化图形和标签对齐,r,label,igraph,text-alignment,vertex,R,Label,Igraph,Text Alignment,Vertex,代码 library(igraph) g <- graph.tree(n = 2 ^ 3 - 1, children = 2) node_labels <- c("", "Group A", "Group B", "(1)Text", "(2)I am a longer text", "(3)I am a long long long text", "(4)X") lay = layout.reingold.tilford(g) plot(g, vertex.siz
library(igraph)
g <- graph.tree(n = 2 ^ 3 - 1, children = 2)
node_labels <- c("", "Group A", "Group B", "(1)Text", "(2)I am a longer text", "(3)I am a long long long text", "(4)X")
lay = layout.reingold.tilford(g)
plot(g,
vertex.size = 4, # node size
vertex.color = '#C4D8E2', # node color
vertex.label = node_labels, # node labels
vertex.label.dist = 5, # node label size
vertex.label.font = 2, # node label type (bold)
vertex.label.degree=0.0,
margin=c(0,0,0,0),
layout=-lay[, 2:1]
)
库(igraph)
g如果您可以手动更改每个标签的距离,如下所示-
plot(g,
vertex.size = 4,
vertex.color = '#C4D8E2',
vertex.label = node_labels,
vertex.label.dist = c(0,0,0,0,8,12,0), # vector of distance
vertex.label.font = 2,
vertex.label.degree=0.0,
margin=c(0,0,0,0),
layout=-lay[, 2:1]
)
或者,您可能希望创建一个函数来获取每个顶点的长度。这是我留给你的即兴创作
t1 <- sapply(node_labels, FUN = nchar)
t2 <- (t1 - min(t1))/ (max(t1) - min(t1))
t2 <- t2*12
plot(g,
vertex.size = 4,
vertex.color = '#C4D8E2',
vertex.label = node_labels,
vertex.label.dist = t2, # vector of distance
vertex.label.font = 2,
vertex.label.degree=0.0,
margin=c(0,0,0,0),
layout=-lay[, 2:1]
)
t1这里是带计算的代码:
library(igraph)
g <- graph.tree(n = 2 ^ 3 - 1, children = 2)
node_labels <- c("", "Group A", "Group B", "(1)Text", "(2)I am a longer text", "(3)I am a long long long text", "(4)X")
lay = layout.reingold.tilford(g)
t1 <- sapply(as.vector( node_labels), FUN = strwidth,units='in')
t2 <- (t1 - min(t1))/ (max(t1) - min(t1))*3+0.9
plot(g,
vertex.size = 4, # node size
vertex.color = '#C4D8E2', # node color
vertex.label = node_labels, # node labels
vertex.label.dist = t2, # node label size
vertex.label.font = 2, # node label type (bold)
vertex.label.degree=0.0,
margin=c(0,0,0,0),
layout=-lay[, 2:1]
)
库(igraph)
嗨,Vikash,我会选择函数,但我认为这取决于使用的字体。我必须找到确定字符串长度的方法。是的,取决于字体。字体将是所有标签的全局字体。你可以考虑使用我提供的替代解决方案,在这里我计算字符并用以获得距离向量。您可以通过增加t2*15或减少t2*6来更改乘法->t2*12。希望这有帮助!真奇怪。我不能让它工作。我试着计算绳子的宽度,但效果并不理想。