【问题标题】:Changing node/vertice opacity in iGraph in R在 R 中更改 iGraph 中的节点/顶点不透明度
【发布时间】:2015-08-03 07:23:38
【问题描述】:

我有一个网络,当我绘制它时,它有许多重叠的节点。我想更改颜色的不透明度,以便您可以在其他节点重叠时看到它们下方的节点。例如,请观看此视频: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)

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

知道我该怎么做吗?我想可能是V(g)$alpha &lt;- 0.8 之类的东西,但这无济于事。

【问题讨论】:

    标签: r opacity igraph network-analysis


    【解决方案1】:

    您可能想尝试一下,例如这个:

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

    【讨论】:

    • 完美,谢谢。我将它调整到我的代码中,如下所示:plot(g, vertex.color = adjustcolor(nodeslist$colors, alpha.f = .5)) 有趣的是,它不适用于 tkplot(),只能用于 plot()。由于我需要移动一些东西,我需要将 tkplot() 坐标合并到正常的 plot() 函数中,然后在那里进行不透明度更改。
    【解决方案2】:

    我发现比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))
    

    另一个优点是您可以根据矢量轻松改变 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))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 2020-11-02
      • 1970-01-01
      • 2013-01-21
      • 2017-10-19
      • 2021-08-25
      相关资源
      最近更新 更多