Как я могу преобразовать аккуратный набор данных в аллювиальный дружественный формат? (Ggalluvial) - PullRequest
0 голосов
/ 01 апреля 2019

У меня проблема с получением данных в подходящем формате для создания аллювиальной диаграммы с ggalluvial (одна строка на аллювий). Я хочу построить потоки между разными классами с 2018 по 2019 год.

Возможно ли это с некоторой магией dplyr? :)

library(tidyverse)
library(ggalluvial)

id <- as.character(c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10))

year <- as.character(c(2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019, 2019))

class <- c("A", "A", "B", "C", "B", "A", "A", "C", "B", "A", "B", "A", "B", "C", "B", "B", "C", "C", "B", "A")

df <- data.frame(id, year, class)

1 Ответ

2 голосов
/ 01 апреля 2019

Кажется, вам не нужно обрабатывать ваши данные, как:

library(ggplot2)
library(ggalluvial)
df$class <- as.factor(df$class) # only put this as factor
ggplot(df,aes(x = year, stratum = class, alluvium = id, fill = class, label = class)) +
       scale_fill_brewer(type = "qual", palette = "Set2") +
       geom_flow(stat = "alluvium", lode.guidance = "rightleft",color = "darkgray") +
       geom_stratum() + 
       theme_light()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...