2015-12-07 2 views
0

Я пытаюсь представить большую сеть с двумя типами узлов (инвесторы делают инвестиции в компании). Для повышения наглядности я хочу, чтобы цвет края в соответствии с узлом они заканчивающиеся в.R - iGraph не отображается («неверная спецификация RGB»)

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 

Если я просто переписываю цвет E (g) $, например, «# 63636309», он отлично работает ... Может ли кто-нибудь указать мне в правильном направлении, чтобы исправить это?

спасибо, Jan

+0

Можете ли вы предоставить небольшой фрагмент кода с воспроизводимыми данными? Мне непонятно, какой цвет бросает ошибку. –

+0

Это проблема в пакете 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) 'и он работает плавно! – JNWHH

+0

Пожалуйста, обратите внимание на отправку ответа на свой комментарий в ответ на ваш вопрос; или рассмотреть вопрос об удалении вашего вопроса. –

ответ

1

Это, как представляется, проблема в пакете 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) 

и он работает плавно!