В настоящее время я пытаюсь создать аллювиальный график в R с пакетом ggalluvial
.С его помощью я хочу построить последовательную миграцию между несколькими значениями в последовательных сегментах времени (Seg1, Seg2, Seg3, Seg4).На 1-м сегменте все случаи имеют значение «рабочий сегмент»;в сегменте 2 значение может быть одним из трех других значений (связанный контент, несвязанный контент, NONE);Значения Seg3 и Seg4 могут быть любыми из четырех вариантов.
Используя следующий код ...
##Reorder levels per segment (make vertical order of strata levels identical
across all axes, rather than "zig-zag" --> this is just an aesthetic
preference)##
dRG.lode <- dRG %>%
mutate(Seg2 = factor(Seg2, levels=c("workseg", "related content",
"unrelated content", "NONE")),
Seg3 = factor(Seg3, levels=c("workseg", "related content",
"unrelated content", "NONE")),
Seg4 = factor(Seg4, levels=c("workseg", "related content",
"unrelated content", "NONE")))
##Plot##
ggplot(as.data.frame(dRG.lode),
aes(axis1 = Seg1, axis2 = Seg2, axis3 = Seg3, axis4 = Seg4)) +
geom_alluvium(aes(fill = Seg4), width = 1/12) +
guides(fill = FALSE) +
geom_stratum(width = 1/12, fill = "black", color = "grey") +
geom_label(stat = "stratum", label.strata = TRUE) +
scale_x_discrete(limits = c("Seg1", "Seg2", "Seg3", "Seg4"), expand =
c(.05, .05, .05, .05)) +
scale_fill_brewer(type = "qual", palette = "Set1") +
ggtitle("Time Course, Segment by Segment")
... Мне удалось создать следующий график:
Мой главный вопрос:
1) Есть ли способ, с помощью которого цвет аллювиальной заливки может быть непостоянным по всей аллювиальной нитиот начала до конца, основываясь на значении Seg4, но INSTEAD, чтобы иметь ось изменения цвета по оси, основанную на текущем значении оси?Например, Я бы хотел, чтобы все нити со значением страт "workseg" на данной оси были голубыми между этой осью и предыдущей осью. Что-то похожее на это кажется возможным на основе примера прививок внижняя часть этой виньетки (см. последний график над приложением).Заполнения в этом примере отражают слои, от которых они произошли, от оси к оси (например, все нити, приходящие от слоев «Никогда», представляют собой чирок, независимо от их значения на следующей оси).Я в основном хочу реализовать обратное к этому - то есть заполнение на основе страт оси next (например, все нити, ведущие к стратам "workseg", синие, независимо от того,где их значение на предыдущей оси).
Не связанный, вторичный вопрос:
2) Есть ли какие-либо средства, с помощью которых можно добавить аннотации к аллювию?То есть они содержат метки слоев, основанные на значениях в наборе данных, но есть ли способ добавить метки или другую аннотативную информацию к самим нитям (помимо ручного в постпроизводстве)?