2016-09-24 34 views
5

visNetwork,默认文字不进去的节点,而是在下方显示: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属性的圆缩放节点内的标签不起作用。

所以问题是如何同时拥有两个选项(“缩放”和“文本内部”)?

PS:真遗憾,没有visNetwork标签!

+0

你会建议额外的标签吗? – Woeitg

回答

4

我发现了一个棘手的方法来解决这个错误。设置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

+0

还没有其他解决方案吗? – skan

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

如果标签的长度是不是你可能想尝试其他条件都相同。