首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用networkD3 = NULL将networkD3中的节点链接到网站

使用networkD3 = NULL将networkD3中的节点链接到网站
EN

Stack Overflow用户
提问于 2016-04-27 16:45:30
回答 1查看 1.4K关注 0票数 1

是否有一种方法可以使用一个节点作为链接到一个外部网站,使用函数forceNetwork()networkD3包中r?我在想也许修改一下clickAction

示例数据:

代码语言:javascript
复制
library(networkD3)
data(MisLinks)
data(MisNodes)

# Create a random URL in the nodes dataset
MisNodes$URL <- paste0("http://www.RANDOMLINK_", sample(1:100, NROW(MisNodes)), ".com")
head(MisNodes)

MyClickScript <- 'alert(d.index)'

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

期望结果:当用户单击节点时,将打开一个新选项卡(例如window.open),指向该节点的相关URL --如何让clickAction指向MisNodes$URL[d.index]

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-02 02:07:24

networkD3的设计并不能使这件事变得容易。这里有一个回答的方法。我将尝试用内联的方式来解释我们在每一步中都在做什么。

代码语言:javascript
复制
library(networkD3)

# example from ?forceNetwork
data(MisLinks)
data(MisNodes)
# Create graph
fn <- forceNetwork(
  Links = MisLinks, Nodes = MisNodes, Source = "source",
  Target = "target", Value = "value", NodeID = "name",
  Group = "group", opacity = 0.4, zoom = TRUE
)

# let's look at our forceNetwork
#   nodes are provided to JavaScript
#   in a nodes data.frame
str(fn$x$nodes)

# make up some links to demonstrate
#   how we can add them to our nodes df
fn$x$nodes$hyperlink <- paste0(
  'http://en.wikipedia.org/wiki/Special:Search?search=',
  MisNodes$name
)

# then with our hyperlinks in our data
#   we can define a click action to open
#   the hyperlink for each node in a new window
fn$x$options$clickAction = 'window.open(d.hyperlink)'

fn
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36895960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档