Как раскрасить по подгруппам с помощью plotweb в двудольном?

#r #bipartite

#r #двудольный

Вопрос:

Я использую plotweb в двудольном формате для построения сетей растений-опылителей и действительно хотел бы иметь возможность раскрашивать ящики с насекомыми по порядку. Я не смог найти или выяснить простой способ сделать это. И выполнение этого вручную (перечисление цвета для каждого отдельного блока) еще более раздражает, чем ожидалось, потому что функция изменяет порядок блоков, чтобы минимизировать пересечение. Наши данные представляют собой серию насекомых (в этом формате: Hymenoptera_Megachilidae_Megachile_policaris) и растений (в этом формате: Ratibida columnifera) с разных участков, расположенных в пределах объектной сети (созданных с использованием frame2webs).

Я обнаружил, что использование ifelse и точного названия метки позволило бы мне выбрать определенные поля для раскрашивания, и если бы я вложил их, я мог бы сделать несколько, и это сработало.

plotweb(Web$`Plot`,col.high=ifelse(colnames(Web$`Plot`)== "Hymenoptera_Megachilidae_Megachile_policaris","red4", ifelse(colnames(Web$`Plot`)== "Hymenoptera_Halictidae_Lasioglossum_bruneri","red4","grey80")))

Я попытался посмотреть, смогу ли я установить цвет для всех блоков с надписями, начинающимися с «Hymenoptera», таким образом, мне нужно будет выполнить только строку для каждого заказа. Но по какой-то причине он не применил цвет к нужным полям (это был кажущийся случайным выбор того, какие из них были и не были окрашены в красный цвет.

plotweb(Web$`Plot`,col.high=ifelse(Web$'Plot'== grepl('^Hymenoptera', Web$`Plot`),"red4","grey80"))

К сожалению, это определенно не сработало. Был раскрашен тот же ассортимент, что и в записи выше, и это было все. Только красный и серый, хотя были представители от каждого заказа

plotweb(Web$`Plot`,col.high=ifelse(Web$`Crow Gas`== grepl('^Hymenoptera', Web$`Plot`),"red4",ifelse(Web$`Plot`== grepl('^Coleoptera', Web$`Plot`),"cyan4", ifelse(Web$`Plot`== grepl('^Diptera', Web$`Crow Gas`),"green","grey80"))))

На данный момент я знаю, что это сработает, но я не хочу в конечном итоге использовать ifelse для каждого отдельного вида, вручную создавая каждому цвет, соответствующий его порядку. Было бы неплохо даже иметь возможность объединять или использовать «или» (я пробовал оба варианта, но ни один из них не сработал), что позволяет мне перечислять несколько видов для каждого цвета, поэтому у меня есть только 3 варианта ifelses (даже если они смехотворно длинные). Но желательно, чтобы я хотел что-то, как я пытался, прежде чем использовать подстроки меток насекомых, чтобы код можно было легко применять к разным участкам, которые имеют разный набор видов, поэтому мне не нужно составлять полный список каждого вида каждый раз, когда я делаю другой участок.