首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用DiagrammeR绘制图形网络

用DiagrammeR绘制图形网络
EN

Stack Overflow用户
提问于 2017-06-25 13:44:54
回答 2查看 715关注 0票数 2

我想要创建一个简单的图片图:

代码语言:javascript
复制
library(igraph)
mydata <- data.table(from=c("John", "John", "Jim"),to=c("John", "Jim", "Jack"))
mygraph <- graph_from_data_frame(d=mydata, directed=T)
plot(mygraph, vertex.label.dist=2)

用diagrammeR

代码语言:javascript
复制
library(DiagrammeR)
mygraph2 <- from_igraph(mygraph)
grViz(mygraph2)

产生此错误

File.exists(关系图)中的错误:无效的“文件”参数

我也试过

代码语言:javascript
复制
grViz(readLines(mygraph2)) 

以及其他组合或命令plot(),但我找不到合适的方法。

我该怎么做呢?

为了直接在DiagrammeR上得到相同的结果,我打开了一个新的问题,不使用without:

How to create a network graph with DiagrammeR?

EN

回答 2

Stack Overflow用户

发布于 2017-06-25 17:37:57

好像有几件事在发生。

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

mydata <- data.table(from=c("John", "John", "Jim"),to=c("John", "Jim", "Jack"))
mygraph <- graph_from_data_frame(d=mydata, directed=TRUE)

下面的代码引发一个警告

代码语言:javascript
复制
mygraph2 <- from_igraph(mygraph)

警告消息: 1:在data.frame中(from=as.integer(i图形::ends(igraph,i图形::e(iGraph)[,:NAs通过强制方式引入)

如果您查看mygraph2,就会发现没有节点或边缘信息,而且它没有呈现:render_graph(mygraph2)。但是警告信息丰富,因为它指向代码行( as.integer(ends(mygraph, E(mygraph), names=TRUE)):可能我们想要names=FALSE),所以尝试删除名称,但是设置标签

代码语言:javascript
复制
V(mygraph)$label = V(mygraph)$name
V(mygraph)$name = factor(V(mygraph)$name, levels=as.character(V(mygraph)$name))

没有警告和呈现

代码语言:javascript
复制
mygraph2 <- from_igraph(mygraph)
render_graph(mygraph2)

如果您想查看dot代码,您可以使用generate_dot,然后将它传递给grViz,但是,这就是render_graph正在做的事情。

代码语言:javascript
复制
grViz(generate_dot(mygraph2))
票数 4
EN

Stack Overflow用户

发布于 2017-06-25 17:39:58

在您的过程中有两个问题。

第一个是在命令from_igraph中。我不确定,也许是包中的一个bug,也许是我的设置出了问题,但是我不能用它来获得想要的结果。以下内容在我的机器上工作。

代码语言:javascript
复制
mygraph3 <- from_adj_matrix(as.matrix(get.adjacency(mygraph)), mode = "directed")

然后你需要render_graph或者类似的东西来得到你的图,grViz是图的字符串表示,而不是图本身。

代码语言:javascript
复制
render_graph(mygraph3)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44746975

复制
相关文章

相似问题

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