2016-09-24 14 views
5

W visNetwork domyślnie tekst nie pójść wewnątrz węzłów, a nie wydaje się pod nim:Jak mają etykiety wewnątrz skalowanych węzłów w sieci 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

wydaje się, że jedynym sposobem na rozwiązanie tego problemu jest użycie ustawić shape nieruchomość do 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

Problem polega na tym, że jak widać na powyższym rysunku, teraz z etykietami wewnątrz węzłów skalowania koła przy użyciu właściwości value nie działa.

Pytanie więc, w jaki sposób mieć jednocześnie obie opcje ("scale" i "text inside")?

PS: Co za wstyd, nie ma tagu visNetwork!

+0

Czy zaproponowałbyś dodatkowe tagi? – Woeitg

Odpowiedz

4

Znalazłem podstępny sposób na rozwiązanie tego błędu. ustawienie font.size zamiast właściwości value działa poprawnie. Musisz go skalować, aby uzyskać najlepszą wizualizację. Na przykład ja skalować go 10 razy większe:

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

Czy nie ma jeszcze innego rozwiązania? – skan

1

Znalazłem inny sposób, dodając przestrzenie na stronach bot etykiety.
Dzięki temu wszystkie czcionki będą miały ten sam rozmiar.

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

Jeśli długość etykiet to nie to samo może chcesz spróbować innych kryteriów.