[英]Overlay igraph Network over an Image
我有一个从igraph
包生成的小型网络,我想用背景中的图像绘制它。
我使用此文档来查找如何在图形上叠加图像:
library('png')
img.3 =readPNG("D:/R_Files/tiger.png")
plot(net2, vertex.shape="raster", vertex.label=NA,
vertex.size=16, vertex.size2=16, edge.width=2)
rasterImage(img.3, xleft=0, xright=1.9, ybottom=0, ytop=1.5)
但是这个代码片段会导致图像隐藏网络图,我希望网络覆盖图像,因此充当网络的背景。 我一直无法找到一种方法来做到这一点 - 任何想法如何或在哪里寻找答案?
您知道如何将图像放在顶部,因此将网络图创建为图像并将其放在顶部。 不过要小心; 你必须使背景透明。
由于您没有提供任何图形或图像,因此我将使用任意的东西。 我有一张非洲轮廓的图像,我将生成一个随机图。
library('png')
library(igraph)
## Generate random graph, plot to png using transparent background.
set.seed(1234)
net2 = erdos.renyi.game(10, 0.28)
png("Network.png")
par(bg="transparent")
plot(net2, vertex.label=NA,
vertex.size=16, vertex.size2=16, edge.width=2)
dev.off()
## Read in image background
net.img = readPNG("Network.png")
img.3 =readPNG("africa3.png")
## Create empty plot
plot(0, type = 'n', axes = FALSE, ann = FALSE,
xlim=c(0,1), ylim=c(0,1))
## Now add two images, first the background, then the network overlay
rasterImage(img.3, xleft=-0.1, xright=1.1, ybottom=-0.1, ytop=1.1)
rasterImage(net.img, xleft=-0.1, xright=1.1, ybottom=-0.1, ytop=1.1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.