在R中的iGraph中更改节点/顶点不透明度

Net*_*t20 7 r opacity igraph network-analysis

我有一个网络,当我绘制它时,有许多重叠的节点.我想更改颜色的不透明度,以便在重叠时可以看到其他节点.例如,请参阅此视频:https://vimeo.com/52390053

我正在使用iGraph我的情节.这是一个简化的代码模糊:

net1 <- graph.data.frame(myedgelist, vertices=nodeslist, directed = TRUE)

g <- graph.adjacency(get.adjacency(net1))

V(g)$color <- nodeslist$colors  #This is a set of specific colors corresponding to each node. They are in the format "skyblue3". (These plot correctly for me). 

E(g)$color <-"gray" 

plot.igraph(g)
Run Code Online (Sandbox Code Playgroud)

但是,我无法找到iGraph更改节点颜色不透明度的选项.

知道怎么做这个吗?我想也许是这样的V(g)$alpha <- 0.8,但这没有做任何事情.

luk*_*keA 10

你可能想尝试这样:

library(igraph)
set.seed(1)
g <- barabasi.game(200)
plot(g, 
     vertex.color = adjustcolor("SkyBlue2", alpha.f = .5), 
     vertex.label.color = adjustcolor("black", .5))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


Dan*_*Dan 5

我发现比lukeA提供的方法更容易控制的方法是使用rgb().您可以根据其四个通道指定颜色(节点,节点框架,边缘等):R,G,B和A(alpha):

library(igraph)
set.seed(1)
g <- barabasi.game(200)
plot(g, 
     vertex.color = rgb(0,0,1,.5), 
     vertex.label.color = rgb(0,0,0,.5))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

另一个优点是您可以根据矢量轻松改变alpha(或颜色).下面的示例并不完全实用,但您可以了解如何使用它:

library(igraph)
set.seed(1)
g <- barabasi.game(200)

col.vec <- runif(200,0,1)
alpha.vec <- runif(200,0,1)

plot(g, 
     vertex.color = rgb(0,0,col.vec,alpha.vec), 
     vertex.label.color = rgb(0,0,0,.5))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述