首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >直接向Visnetwork添加标题和标签

直接向Visnetwork添加标题和标签
EN

Stack Overflow用户
提问于 2022-02-23 20:30:32
回答 2查看 479关注 0票数 2

我有以下网络图:

代码语言:javascript
复制
library(tidyverse)
library(igraph)


set.seed(123)
n=15
data = data.frame(tibble(d = paste(1:n)))

relations = data.frame(tibble(
  from = sample(data$d),
  to = lead(from, default=from[1]),
))

data$name = c("new york", "chicago", "los angeles", "orlando", "houston", "seattle", "washington", "baltimore", "atlanta", "las vegas", "oakland", "phoenix", "kansas", "miami", "newark" )

graph = graph_from_data_frame(relations, directed=T, vertices = data) 

V(graph)$color <- ifelse(data$d == relations$from[1], "red", "orange")

plot(graph, layout=layout.circle, edge.arrow.size = 0.2, main = "my_graph")

我能够将这个图转换成一个"visnetwork“图:

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

visIgraph(graph)

现在,我试图在这张图上加上一个标题:

代码语言:javascript
复制
visIgraph(graph, main = "my title")

虽然这是行不通的:

代码语言:javascript
复制
Error in layout_with_fr(graph, dim = dim, ...) : 
  unused argument (main = "my title")

我找到了一个https://datastorm-open.github.io/visNetwork/legend.html链接,它展示了如何将标题添加到"visnetwork“图中:

代码语言:javascript
复制
nodes <- data.frame(id = 1:3, group = c("B", "A", "B"))
edges <- data.frame(from = c(1,2), to = c(2,3))

# default, on group
visNetwork(nodes, edges, 
           main = "A really simple example", 
           submain = list(text = "Custom subtitle",
                          style = "font-family:Comic Sans MS;color:#ff0000;font-size:15px;text-align:center;"), 
           footer = "Fig.1 minimal example",
           width = "100%")

这似乎非常简单,但它要求您使用"visNetwork()“函数而不是"visIgraph()”函数。

  • 可以使用"visIgraph()“函数直接添加标题吗?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-02-24 18:22:59

如果你愿意的话,我们可以试试这个方法

代码语言:javascript
复制
toVisNetworkData(graph) %>%
  c(list(main = "my title")) %>%
  do.call(visNetwork, .)

代码语言:javascript
复制
toVisNetworkData(graph) %>%
  {
    do.call(visNetwork, c(., list(main = "my title", submain = "subtitle")))
  }

你会看到

票数 2
EN

Stack Overflow用户

发布于 2022-02-24 16:46:28

我无法弄清楚如何使用"visIgraph()“函数来实现这一点--但我认为我能够知道如何生成一个随机图(满足某些条件:Generating Random Graphs According to Some Conditions),并使用常规的"visNetwork()”函数,然后在该图上放置一个标题:

代码语言:javascript
复制
n=15

data = data.frame(id = 1:n)
data$color = ifelse(data$id == 1, "Red", "Orange")
data$label = c("new york", "chicago", "los angeles", "orlando", "houston", "seattle", "washington", "baltimore", "atlanta", "las vegas", "oakland", "phoenix", "kansas", "miami", "newark" )

relations = data.frame(tibble(
  from = sample(data$id),
  to = lead(from, default=from[1]),
))

visNetwork(data, relations, main = "my graph") %>%  visEdges(arrows = "to")

解决我自己的问题感觉很棒(有点)!

  • ,但这可以直接使用"visNetwork()“函数吗?
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71243676

复制
相关文章

相似问题

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