在R中绘制有向多图

Tim*_*imo 5 plot r graph

我从未在R中使用任何图形绘图包,我熟悉基本的绘图命令和ggplot2包.我已经找到了(但没有试过了没有)是Rgraphviz,networkigraph包.所以我想问你,哪个包装有最简单的学习曲线,满足以下要求:

  • 有简单的布局引擎(弹簧布局,随机,...)
  • 尝试在两个顶点之间绘制多条边,以便它们不会重叠.作为奖励,能够调整它是很好的.
  • 可以绘制循环.
  • 顶点和边缘标签,顶点和边缘大小和颜色可调.
  • (不需要任何图形算法,如链接分析,最短路径,最大流量等,但很好,如果存在)

chl*_*chl 3

igraph包似乎满足您的要求,该功能可以根据需要帮助tkplot()调整最终布局。

这是一个使用示例:

s <- cbind(A=sample(letters[1:4], 100, replace=TRUE),
           B=sample(letters[1:2], 100, replace=TRUE))
s.tab <- table(s[,1], s[,2])
library(igraph)
s.g <- graph.incidence(s.tab, weighted=T)
plot(s.g, layout=layout.circle, 
     vertex.label=c(letters[1:4],letters[2:1]),     
     vertex.color=c(rep("red",4),rep("blue",2)), 
     edge.width=c(s.tab)/3, vertex.size=20, 
     vertex.label.cex=3, vertex.label.color="white")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

使用交互式显示(可以用于rgl3D 显示),它看起来像(之后我稍微移动了一个顶点):

tkplot(s.g, layout=layout.circle, vertex.color=c(rep("red",4),rep("blue",2)))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

最后,您甚至可以将图形导出为最常见的格式,例如dotgraphviz。