Как положить разные цвета в plotweb (двухсторонний пакет R) - PullRequest
0 голосов
/ 20 мая 2018

Я использую функцию plotweb из пакета bipartite в R для представления тропических отношений.У меня проблема с цветами: я хочу разные цвета для каждого из моих верхних блоков, с взаимодействиями того же цвета, что и ящик, из которого он выходит.

Это мой код, x - таблица непредвиденных обстоятельств.Я попытался приписать цвет взаимодействиям благодаря суммам столбцов: например, если у меня есть 3 взаимодействия для первого столбца, мои первые 3 строки имеют один и тот же цвет, но он не работает ... plotwebкажется, приписывает цвета случайно.

bipart <- function(x) {
  somme <- data.frame(margin.table(x,2))
  names(somme) <- c("eff")
  write.table(somme$eff, "essai.txt", sep = ";", row.names = FALSE, col.names = FALSE)
  effP <- scan(file = "essai.txt")
  colP <- rep(rainbow(length(effP)), effP)
                plotweb(x,
                              method = "normal", arrow="up.center",
                              col.high = colP, 
                              col.low = "black", 
                              col.interaction= colP, 
                              bor.col.interaction =colP, 
                              bor.col.high=colP,
                              bor.col.low="black",
                              high.lablength = NULL, low.lablength = NULL, text.rot=90,
                              text.high.col="black", text.low.col="black",
                              low.lab.dis=0)
}

И часть моих данных:

atricapillum basilicorne blandulum carinatum confusum dubium
Cyperaceae 1 1 1 0 1 1
Juncaceae 1 1 0 1 1 0
Plantaginaceae 0 0 0 0 1 0
Poaceae 1 0 0 0 0 0
Typhaceae 1 0 0 0 0 0

Спасибо за ваше время!

1 Ответ

0 голосов
/ 20 мая 2018

Я наконец-то узнал, как это сделать!

bipart <- function(x) {
colP = rainbow(length(x[x,]))     
plotweb(x,
                              method = "normal", arrow="up.center",
                              col.high = colP, 
                              col.low = "black", 
                              col.interaction= colP, 
                              bor.col.interaction =colP, 
                              bor.col.high=colP,
                              bor.col.low="black",
                              high.lablength = NULL, low.lablength = NULL, 
                              text.rot=90,
                              text.high.col="black", text.low.col="black",
                              low.lab.dis=0}
...