2017-01-30 3 views
0

В настоящее время я рисую график со 100 особей старше 10 лет, где каждая строка на графике предназначена для одного человека. 100 человек также сгруппированы в 4 группы стратификации. Я пытаюсь использовать функцию stat_smooth для создания плавного графика для каждой группы. Тем не менее, в настоящее время он создает плавный график для каждого человека. Есть ли способ для ggplot2 построить эту гладкую функцию?Создайте групповой плавный график в ggplot2

Кроме того, для гладкой функции я хочу использовать функцию gam и указать вес и тип корреляции. Есть ли способ сделать это в функции stat_smooth?

Вот пример вопроса:

set.seed(1) 
D = data.table(id = rep((1:100),10), value = rnorm(1000), stratification = rep(c("A","B","C","D"), 25)) 
setkey(D, id) 
D = D[, time := 1:10, by = id] 

plot = ggplot(data = D, aes(x = time, y = value, group = id, color = stratification))+ 
    geom_line()+ 
    theme_classic() + 
    xlab("Time from index (years)") + 
    ylab("value") 

Я хотел бы создать четыре гладких функций для группы A, B, C и D соответственно. Есть ли способ сделать это в ggplot?

ответ

1

Если вы просто отклоняют group = id он будет использовать цвет как id вместо этого, давая вы хотите, вы хотите:

ggplot(data = D, aes(x = time, y = value, color = stratification))+ 
    geom_smooth()+ 
    theme_classic() + 
    xlab("Time from index (years)") + 
    ylab("value") 

enter image description here

Смежные вопросы