【发布时间】:2018-02-14 21:05:06
【问题描述】:
在 R 中,我通过以下代码生成一个包含 100 个节点的大型网络图:
library(igraph)
data<-data.frame(c(1:500))
relations<-data.frame(from=c(sample(1:500,500,replace=T)),to=c(sample(1:500,500,replace=T)))
g<-graph_from_data_frame(d=relations,vertices = data,directed=T)
l<-layout_with_fr(g)
l <- norm_coords(l, ymin=-2, ymax=2, xmin=-2, xmax=2)
plot(g, edge.arrow.size=.2, edge.curved=0,vertex.color="orange", vertex.frame.color="#555555",vertex.label.color="black",vertex.label.cex=.7,rescale=F,layout=l)
这会产生一个如下所示的图:https://imgur.com/7v1OqKd
显然这并不理想,因为该图不适合图片。因此,我尝试通过以下方式将绘图导出到 SVG 文件:
svg(width=20, height=20)
plot(g, edge.arrow.size=.2, edge.curved=0,vertex.color="orange", vertex.frame.color="#555555",vertex.label.color="black",vertex.label.cex=.7,rescale=F,layout=l)
dev.off()
这会生成一个放大的 SVG 文件,我无法缩小以查看整个图形....即使我没有调整坐标或以不同方式缩放图形(我相信)。这是一张图片:https://imgur.com/hUTKYCZ
如何将整个图形很好地导出为 SVG 文件?我并不致力于 SVG per se,但这似乎是一个好方法。
编辑:添加 igraph 库和行来定义我的布局算法
【问题讨论】:
-
当我尝试重新创建此问题时,我在
l <- norm_coords(l, ymin=-2, ymax=2, xmin=-2, xmax=2)收到错误lis undefined. -
@alaybourn 啊抱歉,我跳过了定义 l 的步骤。将其添加到我的原始帖子中 + 顶部包含 igraph 库。您现在应该可以重新创建了。