我正在尝试将networkD3 forceNetwork图表中节点和链接的值变量显示为工具提示。为此,我将Shiny与htmlwidgets和外部JS库Tippy一起使用。
这是我到目前为止所知道的:
library(shiny)
library(htmlwidgets)
library(networkD3)
fn <- forceNetwork(
Links = MisLinks, Nodes = MisNodes,
Source = "source", Target = "target",
Value = "value", NodeID = "name",
Group = "group", opacity = input$opacity)
tippyJS <- 'tippy(".node")'
server <- function(input, output) {
# Load data
data(MisLinks)
data(MisNodes)
# Append value variables to links and nodes in fn network
fn$x$links$value <- "links tooltips"
fn$x$nodes$value <- "nodes tooltips"
output$net <- renderForceNetwork(onRender(fn,
'
function(el, x) {
d3.selectAll(".node, .link").append("svg:title")
.text(function(d) { return d.value; });
}
'
)
)
}
ui <- fluidPage(
tags$head(tags$script(src="https://unpkg.com/tippy.js@2.0.2/dist/tippy.all.min.js")),
tags$script(tippyJS),
titlePanel("ForceNetD3"),
mainPanel(
forceNetworkOutput(outputId = "net")
)
)
shinyApp(ui = ui, server = server)Tippy应该接受.node类的title属性,并将其转换为更美观的工具提示。我已经向所有节点和链接添加了标题标记,在底层HTML页面的head标记中加载了Tippy库,然后在一个单独的脚本标记中对.node类的所有对象调用了Tippy函数。Tippy似乎没有注意到这一点:我继续得到默认的浏览器工具提示,而不是Tippy工具提示。
https://stackoverflow.com/questions/47703946
复制相似问题