通过svg()导出R plot而不进行缩放

时间:2018-02-14 21:05:07

标签: r svg plot

在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库和线来定义我的布局算法

1 个答案:

答案 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)