Как отключить эффект наведения мыши на диаграммах сети networkD3 / d3Network (пакет GNU R) - PullRequest
0 голосов
/ 27 июня 2018

Я бы хотел отключить эффект наведения мыши на сетевых диаграммах, как указано на http://christophergandrud.github.io/d3Network/ (поиск «увеличить»). Даже если нет встроенной опции, я думаю, что это возможно, используя htmltools или htmlwidget, вставляя соответствующие функции javascript (например, http://bl.ocks.org/PandaRider/84b9c096e37334c2a4fd945a66b8ccf9).

Обновление: Просто заметил, что раздражающий эффект проявляется в Chrome, а не в Edge.

1 Ответ

0 голосов
/ 04 июля 2018

Он не поддерживается "изначально", но вы можете достичь этого с помощью htmlwidgets::onRender ...

для forceNetwork():

library(networkD3)
library(htmlwidgets)

data(MisLinks)
data(MisNodes)

fn <- forceNetwork(Links = MisLinks, Nodes = MisNodes, Source = "source", 
                   Target = "target", Value = "value", NodeID = "name",
                   Group = "group")

onRender(fn, "function(el,x) { d3.selectAll('.node').on('mouseover', null); }")

для diagonalNetwork() и radialNetwork():

library(networkD3)
library(htmlwidgets)

URL <- paste0("https://cdn.rawgit.com/christophergandrud/networkD3/",
              "master/JSONdata//flare.json")

Flare <- jsonlite::fromJSON(URL, simplifyDataFrame = FALSE)
Flare$children = Flare$children[1:3]

rn <- radialNetwork(List = Flare, fontSize = 10, opacity = 0.9)
onRender(rn, "function(el, x) { d3.selectAll('.node').on('mouseover', null); }")

dn <- diagonalNetwork(List = Flare, fontSize = 10, opacity = 0.9)
onRender(dn, "function(el, x) { d3.selectAll('.node').on('mouseover', null); }")
...