我有以下网络图:
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“图:
library(visNetwork)
visIgraph(graph)现在,我试图在这张图上加上一个标题:
visIgraph(graph, main = "my title")虽然这是行不通的:
Error in layout_with_fr(graph, dim = dim, ...) :
unused argument (main = "my title")我找到了一个https://datastorm-open.github.io/visNetwork/legend.html链接,它展示了如何将标题添加到"visnetwork“图中:
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()”函数。
谢谢!
发布于 2022-02-24 18:22:59
如果你愿意的话,我们可以试试这个方法
toVisNetworkData(graph) %>%
c(list(main = "my title")) %>%
do.call(visNetwork, .)或
toVisNetworkData(graph) %>%
{
do.call(visNetwork, c(., list(main = "my title", submain = "subtitle")))
}你会看到

发布于 2022-02-24 16:46:28
我无法弄清楚如何使用"visIgraph()“函数来实现这一点--但我认为我能够知道如何生成一个随机图(满足某些条件:Generating Random Graphs According to Some Conditions),并使用常规的"visNetwork()”函数,然后在该图上放置一个标题:
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")解决我自己的问题感觉很棒(有点)!
https://stackoverflow.com/questions/71243676
复制相似问题