【问题标题】:R - iGraph does not plot ("invalid RGB specification")R - iGraph 不绘图(“无效的 RGB 规范”)
【发布时间】:2016-03-12 05:52:00
【问题描述】:

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

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,它就可以完美地工作...... 谁能指出我正确的方向来解决这个问题?

非常感谢, 一月

【问题讨论】:

  • 你能否提供一个小代码sn-p,其中包含可重现的数据?我不清楚哪种颜色会引发错误。
  • 这似乎是 GISTools 包中的问题。我现在正在使用带有以下公式E(g)$color &lt;- 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) 的 scales 包,它运行顺利!
  • 请考虑发布您的评论回复作为对您问题的回答;或考虑删除您的问题。

标签: r plot colors transparency igraph


【解决方案1】:

这似乎是 GISTools 包中的问题。我现在正在使用带有以下公式的 scales 包

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)

而且运行顺畅!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    • 2014-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多