r - 使用 plotly 或 Network 3D 将 igraph 转换为交互式绘图

标签 r plotly interactive force-layout ggraph

我正在寻找一个示例或教程来转换 ggraph反对迭代力网络。
首先我尝试转换为 plotly对象使用 plotly::ggplotly功能。但似乎plotly不要很好地处理这种转换并错过边缘。
但我找到了 network3D ,我可以转换一个 igraph反对 network3D对象,但这不是我想要的。而且这个包的功能太冗长了。无论如何,没有函数可以从 ggraph 转换目的。
所以,我的问题真的很基础,但是...你知道有什么方法可以创建交互式 ggraph网络?
谢谢

最佳答案

试试 ggiraph包,它与 ggraph 一起使用,如您在示例中看到的 here (页面底部)。
为了将来引用(如果上面的链接可能会失效),这是 ggiraph 的示例(不是我的代码):

library(ggraph)
library(igraph)
library(ggiraph)

actors <- data.frame(
  name = c("Alice", "Bob", "Cecil", "David", "Esmeralda"),
  age = c(48,33,45,34,21),
  gender = c("F","M","F","M","F")
)
relations <- data.frame(
  from = c("Bob", "Cecil", "Cecil", "David", "David", "Esmeralda"),
  to = c("Alice", "Bob", "Alice", "Alice", "Bob", "Alice"),
  same.dept = c(FALSE,FALSE,TRUE,FALSE,FALSE,TRUE),
  friendship = c(4,5,5,2,1,1),
  advice = c(4,5,5,4,2,3)
)

g <- graph_from_data_frame(relations,
       directed = TRUE, vertices = actors)

z <- ggraph(g, layout = 'linear', circular = TRUE) +
  geom_edge_arc(color = "red", edge_width = .2) +
  geom_point_interactive(size = 5,
    mapping = aes(x = x, y = y, data_id = gender,
                  tooltip = paste0(name, ": ", age, "y.o."))
  ) + theme_graph()

girafe(ggobj = z, width_svg = 5, height_svg = 5,
       options = list(opts_sizing(rescale = FALSE)))
似乎 plotly 还不支持 ggraph,但你可以跟踪进度 here .

关于r - 使用 plotly 或 Network 3D 将 igraph 转换为交互式绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62659308/

相关文章:

R - 先验算法的 For 循环

r - 使用 plotly::rangeslider 时放大 y 轴

python - 如何在 tkinter Canvas 中嵌入 matplotlib 图形时获得 (3d) 交互性

r - 简化计算,因此可以使用矩阵运算来完成

R:计算从日落开始的天数

r - 如何使用从 group_by (dplyr) 中退休的值创建列

python - 绘图中 x 轴上的时间

python - Plotly:如何设置分组子图?

python-3.x - 与排列在 HBox 中的 SelectMultiple 小部件的交互功能

ios - 具有交互式动画过渡的 TabBarController