Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在r中创建圆形/同心二部图_R_Igraph_Ggraph_Tidygraph - Fatal编程技术网

在r中创建圆形/同心二部图

在r中创建圆形/同心二部图,r,igraph,ggraph,tidygraph,R,Igraph,Ggraph,Tidygraph,已解决:查看我的解决方案,添加在帖子底部 我目前正在尝试使用r创建一个圆形二部图,理想情况下使用GGRAPHE。我有一个关于雄性和雌性青蛙之间交配关系的数据集;以下是该数据的子集: Mother Father M1 F1 M2 F2 M3 F2 M4 F3 M5 F4 M6 F4 M7 F4 我的目标是想象每个有机体有多少伙伴,比如: 到目前为止,我已经能够使用igraph制作出该图的线性

已解决:查看我的解决方案,添加在帖子底部

我目前正在尝试使用r创建一个圆形二部图,理想情况下使用GGRAPHE。我有一个关于雄性和雌性青蛙之间交配关系的数据集;以下是该数据的子集:

Mother    Father
M1        F1
M2        F2
M3        F2
M4        F3
M5        F4
M6        F4
M7        F4
我的目标是想象每个有机体有多少伙伴,比如:

到目前为止,我已经能够使用igraph制作出该图的线性版本:

> library(tidyverse)
> library(igraph)
> library(ggraph)
> MyData <- read_csv("Bipartite.csv")
> Visualization <-graph.data.frame(MyData)
> bipartite.mapping(Visualization)

$res
[1] TRUE
 $type
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  
TRUE  TRUE  TRUE
[14]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE


> V(Visualization)$type <- bipartite_mapping(Visualization)$type
> plot(Visualization, layout = layout.bipartite)
但是,我得到的不是两个同心环,而是一个大圆圈,这对显示数据没有用处(我知道,通过GGRAPHE可以更简单地完成)

其次,我尝试将igraph对象引入ggraph并将circular设置为TRUE:

ggraph(Visualization, layout = 'bipartite', circular = TRUE) 
+ geom_edge_link() 
+ geom_node_point()
但我得到了错误信息:

Error in layout_igraph_igraph(graph, layout, circular, ...) :
Circular layout only applicable to tree and DAG layout
关于如何产生我想要的视觉效果有什么想法吗?我对r和stackoverflow都是新手,所以我很抱歉对我的问题的解释有任何限制。谢谢

解决方案:

首先,加载您需要的包

库(tidyverse)
图书馆(潮汐图)
图书馆(igraph)
库(ggraph)

现在,读入节点和边数据,并使用ggraph构造图形对象


节点如果您可以通过发布数据集(数据集的子集)或提供代码来生成类似的数据,这将很有帮助可能
ggraph(PlotBig,layout='bipartite')+geom_edge_link()+geom_node_point()+coord_polar()
会起作用,但不能不起作用testing@PierreGramme,说得好,谢谢-补充。如果您可以发布数据集(子集)或提供代码来生成类似的数据,这会有所帮助。也许
ggraph(PlotBig,layout='bipartite')+geom_edge_link()+geom_node_point()+coord_polar()
可以工作,但不能不工作testing@PierreGramme,很好,谢谢你-补充说。
Error in layout_igraph_igraph(graph, layout, circular, ...) :
Circular layout only applicable to tree and DAG layout