簡體   English   中英

在ggplot2中創建組平滑圖

[英]Create group smooth plot in ggplot2

我目前正在繪制一個圖表,其中有10年內有100個人,其中圖表中的每一行都是針對一個人的。 100個人也分為4個不同的分層組。 我正在嘗試使用stat_smooth函數為每個組創建一個平滑圖。 但是,當前正在為每個人繪制平滑圖。 ggplot2有沒有辦法繪制此平滑函數?

另外,對於平滑函數,我希望使用gam函數ans指定權重和相關類型。 有沒有辦法在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中做到這一點?

如果您只是放下group = id ,它將使用顏色作為id ,從而提供您想要的:

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

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM