如何在visNetwork中的缩放节点内添加标签?

时间:2016-09-24 09:45:25

标签: r graph

visNetwork中,默认情况下,文字不会进入节点内部,而是显示在节点下方:

require(visNetwork, quietly = TRUE)
nodes <- data.frame(id = 1:3, label=2014:2016 ,value=1:3)
edges <- data.frame(from = c(1,2), to = c(1,3))
visNetwork(nodes, edges, width = "100%")

enter image description here

似乎解决此问题的唯一方法是将shape属性设置为circle

require(visNetwork, quietly = TRUE)
nodes <- data.frame(id = 1:3, label=2014:2016 ,value=1:3,shape='circle')
edges <- data.frame(from = c(1,2), to = c(1,3))
visNetwork(nodes, edges, width = "100%")

enter image description here

问题在于,正如您在上图中所看到的,现在使用value属性的圆形缩放节点内的标签不起作用。

所以问题是如何同时拥有两个选项(&#34;缩放&#34;&#34;文本内部&#34;)?

PS:真可惜,没有visNetwork标签!

2 个答案:

答案 0 :(得分:7)

我找到了解决这个bug的棘手方法。设置font.size而不是value属性可以正常工作。您需要扩展它以获得最佳可视化效果。例如,我将它缩放了10倍:

require(visNetwork, quietly = TRUE)
nodes <- data.frame(id = 1:3, label=2014:2016 ,font.size =(1:3)*10,shape='circle')
edges <- data.frame(from = c(1,2), to = c(1,3))
visNetwork(nodes, edges, width = "100%")

enter image description here

答案 1 :(得分:1)

我找到了另一种方法,在标签的机器人两侧添加空格 这将使所有字体保持相同的大小。

n <- 5L
nodes <- data.frame(id = 1:3, label=paste0(strrep(" ",n), 2014:2016,
strrep(" ",n)) ,value=1:3,shape='circle')
edges <- data.frame(from = c(1,2), to = c(1,3))
visNetwork(nodes, edges, width = "100%")

enter image description here

如果标签的长度不同,您可能需要尝试其他标准。