我對ggplot2在 R 中使用相對較新,并且已經為此苦苦掙扎了一段時間。我已經想出了如何從圖表上的一個資料框中獲取所有內容(這很容易......),以及如何撰寫一個回圈函式來將每個觀察結果(id在下面的示例中)放到他們自己的圖表上,但不知道如何使用多個idper創建單獨的圖表group,當我每次運行代碼時id和都可以更改。group這是一些示例資料和我試圖產生的輸出。
x <- c(1,3,6,12,24,48,72,1,3,6,12,24,48,72,1,3,6,12,24,48,72,1,3,6,12,24,48,72)
y <- c(8,27,67,193,271,294,300,10,30,70,195,280,300,310,5,25,60,185,250,275,300,15,40,80,225,275,325,330)
group <- c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2)
id <- c(100,100,100,100,100,100,100,101,101,101,101,101,101,101,102,102,102,102,102,102,102,103,103,103,103,103,103,103)
df <- data.frame(x,y,group,id)


編輯:OP在評論中澄清他們想要單獨的圖表,而不是刻面
# 1
ggplot2(df[df$group == 1,], aes(x= x, y=y, colour= factor(id))) geom_line()
# 2
ggplot2(df[df$group == 2,], aes(x= x, y=y, colour= factor(id))) geom_line()
uj5u.com熱心網友回復:
為了達到你想要的結果
group使用例如拆分您的資料框split- 用于
lapply回圈拆分資料框串列以創建繪圖,或者如果您想將組標簽添加到您可以回圈的標題names(df_split)。
注意:我將id變數轉換為因子。此外,您必須映射id組美學以獲得每組的線條。但是,由于您的 x 變數是數字,因此實際上不需要group美學。
library(ggplot2)
df_split <- split(df, df$group)
lapply(df_split, function(df) {
ggplot(df, aes(x = x, y = y, group = id, color = factor(id)))
geom_line()
})
lapply(names(df_split), function(i) {
ggplot(df_split[[i]], aes(x = x, y = y, group = id, color = factor(id)))
geom_line()
labs(title = paste("group =", i))
})
#> [[1]]

#>
#> [[2]]

即使我建議使用lapply相同的方法,也可以使用for這樣的回圈來實作:
for (i in names(df_split)) {
print(
ggplot(df_split[[i]], aes(x = x, y = y, group = id, color = factor(id)))
geom_line()
labs(title = paste("group =", i))
)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/418388.html
標籤:
