2015-12-27 17 views
5

Soru, R değerinde networkD3::forceNetwork kullanarak bağlantının Değerine veya ağırlığına dayalı iki farklı renk belirtmektir. Örneğin, BlueKuvvet yönelimli ağdaki her bağlantı için renkleri belirtin, ağD3 :: forceNetwork()

library(networkD3) 
# Load data 
data(MisLinks) 
data(MisNodes) 

# Plot 
forceNetwork(Links = MisLinks, Nodes = MisNodes, 
     Source = "source", Target = "target", 
     Value = "value", NodeID = "name", 
     Group = "group", opacity = 0.8) 

bir d3-js ilgili soru here (bildiğim hiçbir şeyin: here (forceNetwork bölüm) kopyalanan az 1.

Örnek kod daha bağlantıların ağırlık için fazla 1, dark bağlantılar Şimdiye kadar JS hakkında.

cevap

3

için değerlerin> 1 ve kırmızı mavi bağlantıları sunuyor.
Sen ifelse işlevini kullanarak MisLinks$value değerlerine bağlı olarak bir vektör sağlayarak bunu yapabilir:

forceNetwork(Links = MisLinks, Nodes = MisNodes, 
     Source = "source", Target = "target", 
     Value = "value", NodeID = "name", 
     Group = "group", opacity = 0.8, 
     linkColour = ifelse(MisLinks$value > 1, "blue","black")) 

Bu çözüm javascript bilinmesine bağlı değildir.
Bu yardımcı olur umarım. Bu örnekte

7

Sanırım MisLinks'teki değerlere göre renkler elde etmek için JS ile linkColour arasına sarılmış bir javascript işlevini geçirebilmeniz gerekir. Örneğin, ben sadece networkD3 ile çalışan aynı sorunu yaşadım değerlere < = 1.

forceNetwork(Links = MisLinks, Nodes = MisNodes, 
      Source = "source", Target = "target", 
      Value = "value", NodeID = "name", 
      Group = "group", opacity = 0.8, 
      linkColour = JS('function(l) { return l.value > 1 ? "#00F" : "#F00" }')) 
+0

renk için farklı bir özellik kullanmak mümkün mü? bu yüzden, kenarın genişliği için "değer" i ve renk için "eklenmiş" yi kullanın. "Source", "target" ve "value" e ek olarak "colocated" adında bir öznitelik geçirmeyi denedim ve kodu "linkColour = JS" olarak değiştirdim. ('Function (l) {return l.colocated> 0? "# 00F" : "# F00"} '). Aşağıdaki hatayı alıyorum: '' class_frame' için '' JS_EVAL '' sınıfını zorlayamazsınız. – ironv

+0

Muhtemelen ilgili renklerle düğümleri renklendirmesi gereken ilgili bir soru: http://stackoverflow.com/questions/38793947/r-colouring-scheme-in-networkd3-vs-igraph?noredirect=1#comment65115769_38793947 –

+0

@ironv Daha önce de çalıştı iken linkColour parametresi artık JS'yi desteklemiyor gibi görünüyor. Ancak, Joseah'nın cevabı işe yarıyor. –

İlgili konular