【问题标题】:How to plot a complete graph in R?如何在 R 中绘制完整的图形?
【发布时间】:2014-08-21 19:20:09
【问题描述】:

我想在 R 中绘制完整的图表。

我该怎么做?我在 CRAN 上发现只有一个包具有生成完整图表的功能。但是这个包,即“RnavGraph”,没有安装,而是以错误状态退出。进一步搜索似乎很困难,因为图的含义不同,它不仅与图结构相关,而且与图相关。

如何在 R 中绘制 complete graph

附: 但是当我尝试安装“RnavGraph”时出现以下错误:

ERROR: dependencies ‘graph’, ‘RBGL’ are not available for package ‘RnavGraph’
* removing ‘/home/steve/R/x86_64-unknown-linux-gnu-library/3.0/RnavGraph’

The downloaded source packages are in
    ‘/tmp/RtmpIW4p30/downloaded_packages’
Warning message:
In install.packages("RnavGraph") :
  installation of package ‘RnavGraph’ had non-zero exit status

【问题讨论】:

  • 尝试source("http://bioconductor.org/biocLite.R"); biocLite("graph"); biocLite("RBGL"),然后再次尝试加载RnavGraph
  • 这行得通!但是我还不能绘制图表,因为这需要 Rgraphviz 并且我得到问题“包‘Rgraphviz’不可用(对于 R 版本 3.0.2)”。我宁愿不更新 R,因为此时我无法使用包管理器进行更新,并且我不想从源代码安装它。是否有其他选项可以绘制完整的图表?
  • @David Arenburg 非常感谢您帮助找到解决方案!
  • Np,看起来对你没有任何帮助
  • 我认为您可以使用 graph 包中的 randomGraph 函数来执行此操作。例如,对于 5 个节点,g <- randomGraph(1:5, 1,1); plot(g)

标签: r graph


【解决方案1】:

使用igraph。这是一个简单的方法:

library(igraph)

CompleteGraph <- function(n) {
  myEdges <- combn(1:n,2)
  myGraph <- graph(myEdges, directed=FALSE)
  return(myGraph)
}

myGraph <- CompleteGraph(10)

plot(myGraph)

igraph 包可让您从边列表制作图形。在这种情况下,我使用combn 从向量1:n 中生成两个数字的所有唯一组合。当我将其输入graph 函数时,它会创建一个图,其中每个节点都连接到其他每个节点。我设置了directed=false,所以在绘制图表时箭头不会出现。 igraph 函数将图形绘图添加到 plot 函数中,因此可以像上面那样绘制新创建的图形。 (这比输入plot.igraph 更容易)

【讨论】:

  • 感谢您的接受!如果我还能做些什么来改进我的答案,请告诉我。
猜你喜欢
  • 2020-07-30
  • 2010-11-28
  • 2014-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-09
  • 1970-01-01
相关资源
最近更新 更多