【问题标题】:Plotting large graph in R with igraph用 igraph 在 R 中绘制大图
【发布时间】:2026-01-08 11:10:01
【问题描述】:

我试图绘制一个包含 20 万个节点和 800 万条边的网络。我使用的代码在这里:

library(igraph)
file.choose()
xlist<-read.graph("/Users/quyao/Desktop/redstar_relation.txt", format="ncol", directed=TRUE)
xlist
png('my_png.png', width = 1600, height =900)
plot(xlist)
dev.off()

我知道了:

这种图很难研究拓扑。你有什么建议吗?

由于节点和边太多,通过参数'layout'改变布局可能没有太大帮助。

使用我的代码构建这张图片大约需要一个半小时,我怎样才能让它更快?

非常感谢。

【问题讨论】:

  • 你能给我们一些数据吗?目前我们无法重现您的图表。
  • 如果不拆分/合并数据,将很难直观地研究 20 万个节点。
  • 我敢猜测,将这么大的网络可视化不会让你去任何你想去的地方。您最好先定义您要查找的内容和尝试研究的内容,然后拆分数据或对数据进行一些预处理,计算一些统计数据或聚合或其他任何东西 - 然后再可视化任何东西图表/分析的一个方面,这将是可理解的,有助于说明你的观点。您还可以节省等待图表打印的时间。
  • 谢谢大家。 @amit 是对的,我最好先弄清楚我在寻找什么并尝试学习,并在绘图之前进行一些预处理。

标签: r plot social-networking igraph


【解决方案1】:

考虑使用其他软件进行可视化。我通常将 Gephi 用于具有高达 150 000 个节点的图。

但这实际上取决于您的机器有多少 RAM(我的机器有 8 GB)。也可以通过修改配置文件来扩展 Gephi 的 RAM 分配(它不像在 RStudio 中那样自动分配。

【讨论】:

  • 那么你如何处理超过 150k 的节点?
  • 您可以“修剪”数据并根据介数或度数过滤不太重要的节点,也可以增加笔记本电脑的内存。不幸的是,图形计算非常占用 RAM。