R - iGraph没有绘制("无效的RGB规范")

时间:2015-12-07 15:08:05

标签: r plot colors transparency igraph

我试图想象一个拥有两种节点的大型网络(投资者对公司进行投资)。为了增加可见性,我想根据它们结束的节点为边缘着色。

edge.end <- get.edges(g, 1:ecount(g))[,1] # g is my igraph element
E(g)$color <- V(g)$color[edge.end] # edge color based on vector color

这非常有效,可返回32,000多个十六进制颜色代码。

[1] "#FFF5F0" "#FFF5F0" "#FFF5F0" ...

由于图表现在非常拥挤,我希望根据各自的投资规模使边缘透明。透明度应介于0.5和1之间。 为此,我使用GISTools:

E(g)$color <- add.alpha(E(g)$color, ((0.5*(E(g)$Invested.Amount.in.EUR - min(E(g)$Invested.Amount.in.EUR))) / (max(E(g)$Invested.Amount.in.EUR)-min(E(g)$Invested.Amount.in.EUR)))+0.5)

这似乎有效并且返回:

[1] "#FFF5F0BF" "#FFF5F0B3" "#FFF5F099" ...

然而,当我现在使用以下代码绘制图形时(在添加透明度之前它完美地工作)

pdf('all.pdf')
plot(g, layout = layout_with_fr(g, niter = 1000, weights = E(g)$width))
dev.off()

R返回以下错误:

Error in plot.xy(xy.coords(x, y), type = type, ...) : 
  invalid RGB specification

如果我只是用#34;#63636309&#34;覆盖E(g)$颜色。它完美地工作...... 任何人都可以指出我正确的方向来解决这个问题吗?

非常感谢, 扬

1 个答案:

答案 0 :(得分:1)

这似乎是GISTools包中的一个问题。我现在正在使用具有以下公式的scale包

pass

它运作顺利!