Если вы можете вручную изменить расстояние для каждой метки, как показано ниже -
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]
)