Мои поиски способа прикрепления всплывающих подсказок к ссылкам (то есть кромкам) между узлами с помощью forceNetwork идут пустым. Это наиболее важные примеры, которые я нашел:
Итак, как вы добавляете всплывающие подсказки для ссылок forceNetwork? Является ли это возможным? Я вижу, что forceNetwork имеет атрибут clickAction, который вы можете использовать для вызова JS с htmlwidgets. К сожалению, clickAction, похоже, действует на узлы, а не на связи между ними.
Вот мой воспроизводимый пример:
library(networkD3)
library(htmlwidgets)
# Load data
data(MisLinks)
data(MisNodes)
# Make network using sample data
fn <- forceNetwork(
Links = MisLinks, Nodes = MisNodes,
Source = "source", Target = "target",
Value = "value", NodeID = "name",
Group = "group"
)
# Get the target variable in fn$x$links (an integer id) to show up as a tooltip when user hovers over a link (i.e. edge) in the graph
fnrender <- htmlwidgets::onRender(
fn,
'
function(el, x) {
d3.selectAll(".link").select("title")
.text(function(d) { return d.target; });
}
'
)
# display the result
fnrender
Моя цель состоит в том, чтобы иметь строковую переменную, описывающую связь между двумя узлами, когда пользователь наводится на связь между ними. Любые предложения о том, как двигаться вперед, будут высоко оценены.
Вы должны "добавить" название...
library(networkD3)
library(htmlwidgets)
# Load data
data(MisLinks)
data(MisNodes)
# Make network using sample data
fn <- forceNetwork(
Links = MisLinks, Nodes = MisNodes,
Source = "source", Target = "target",
Value = "value", NodeID = "name",
Group = "group"
)
# Get the target variable in fn$x$links (an integer id) to show up as a tooltip when user hovers over a link (i.e. edge) in the graph
fnrender <- htmlwidgets::onRender(
fn,
'
function(el, x) {
d3.selectAll(".link").append("svg:title")
.text(function(d) { return d.source.name + " -> " + d.target.name; })
}
'
)
# display the result
fnrender