在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 本身,但这似乎是一个很好的方法。
编辑:添加了igraph库和线来定义我的布局算法
答案 0 :(得分:0)
在绘图功能中更改rescale = T会产生您期望的效果吗?
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=T,layout=l)