繁体   English   中英

R-iGraph不绘制(“无效的RGB规范”)

[英]R - iGraph does not plot (“invalid RGB specification”)

我正在尝试可视化具有2种类型的节点的大型网络(投资者对公司进行投资)。 为了增加可见性,我想根据边缘结束的节点为边缘着色。

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

如果我仅使用“#63636309”覆盖E(g)$ color,它就可以正常工作...谁能指出正确的方向来解决此问题?

非常感谢Jan

在GISTools软件包中,这似乎是一个问题。 我现在使用带有以下公式的秤包

E(g)$color <- alpha(E(g)$color, ((0.8*(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.2)

而且工作顺利!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM