如何按组创建箱线图?
How to create box plots by group?
我有这个 df,我正在尝试为每个 ID 创建一个箱形图。理想情况下,我希望所有箱线图都在同一页上,以便能够比较它们。有人可以帮忙吗?
dput(df)
structure(list(ID = c("F1", "F1", "F1", "F1", "F1", "F1", "F1",
"F2", "F2", "F2", "F2", "F2", "F2", "F2", "F2", "F3", "F3", "F3",
"F3", "F3", "F3", "F3", "F3", "F3", "F4", "F4", "F4", "F4", "F4",
"F4", "F4", "F4"), Date = c("22/6/2021", "23/6/2021", "24/6/2021",
"25/6/2021", "26/6/2021", "27/6/2021", "28/6/2021", "22/6/2021",
"23/6/2021", "24/6/2021", "25/6/2021", "26/6/2021", "27/6/2021",
"28/6/2021", "29/6/2021", "22/6/2021", "23/6/2021", "24/6/2021",
"25/6/2021", "26/6/2021", "27/6/2021", "28/6/2021", "29/6/2021",
"30/6/2021", "22/6/2021", "23/6/2021", "24/6/2021", "25/6/2021",
"26/6/2021", "27/6/2021", "28/6/2021", "29/6/2021"), Values = c(9.6,
9.8, 10.2, 9.8, 9.9, 9.9, 9.9, 1.2, 1.2, 1.8, 1.5, 1.5, 1.6,
1.4, 1.1, 3266, 3256, 7044, 6868, 6556, 3405, 3410, 3980, 5567,
59.4, 56, 52.8, 52.4, 55.5, 54, 61, 53.6)), class = "data.frame", row.names = c(NA,
-32L))
正如 Lucas 所指出的,facet 是一种选择。
如果您想并排查看箱线图,也可以像这样使用 fill = ID
:
library(ggplot2)
df <- structure(list(ID = c("F1", "F1", "F1", "F1", "F1", "F1", "F1",
"F2", "F2", "F2", "F2", "F2", "F2", "F2", "F2", "F3", "F3", "F3",
"F3", "F3", "F3", "F3", "F3", "F3", "F4", "F4", "F4", "F4", "F4",
"F4", "F4", "F4"),
Date = c("22/6/2021", "23/6/2021", "24/6/2021",
"25/6/2021", "26/6/2021", "27/6/2021", "28/6/2021", "22/6/2021",
"23/6/2021", "24/6/2021", "25/6/2021", "26/6/2021", "27/6/2021",
"28/6/2021", "29/6/2021", "22/6/2021", "23/6/2021", "24/6/2021",
"25/6/2021", "26/6/2021", "27/6/2021", "28/6/2021", "29/6/2021",
"30/6/2021", "22/6/2021", "23/6/2021", "24/6/2021", "25/6/2021",
"26/6/2021", "27/6/2021", "28/6/2021", "29/6/2021"),
Values = c(9.6,
9.8, 10.2, 9.8, 9.9, 9.9, 9.9, 1.2, 1.2, 1.8, 1.5, 1.5, 1.6,
1.4, 1.1, 3266, 3256, 7044, 6868, 6556, 3405, 3410, 3980, 5567,
59.4, 56, 52.8, 52.4, 55.5, 54, 61, 53.6)),
class = "data.frame", row.names = c(NA,
-32L))
ggplot(df, aes(x = ID, y = Values, fill = ID)) +
geom_boxplot() +
scale_y_log10()
注意:我缩放了 y 值 (log10) 以便能够更好地看到 F1、F2 和 F4 中的差异。
我有这个 df,我正在尝试为每个 ID 创建一个箱形图。理想情况下,我希望所有箱线图都在同一页上,以便能够比较它们。有人可以帮忙吗?
dput(df)
structure(list(ID = c("F1", "F1", "F1", "F1", "F1", "F1", "F1",
"F2", "F2", "F2", "F2", "F2", "F2", "F2", "F2", "F3", "F3", "F3",
"F3", "F3", "F3", "F3", "F3", "F3", "F4", "F4", "F4", "F4", "F4",
"F4", "F4", "F4"), Date = c("22/6/2021", "23/6/2021", "24/6/2021",
"25/6/2021", "26/6/2021", "27/6/2021", "28/6/2021", "22/6/2021",
"23/6/2021", "24/6/2021", "25/6/2021", "26/6/2021", "27/6/2021",
"28/6/2021", "29/6/2021", "22/6/2021", "23/6/2021", "24/6/2021",
"25/6/2021", "26/6/2021", "27/6/2021", "28/6/2021", "29/6/2021",
"30/6/2021", "22/6/2021", "23/6/2021", "24/6/2021", "25/6/2021",
"26/6/2021", "27/6/2021", "28/6/2021", "29/6/2021"), Values = c(9.6,
9.8, 10.2, 9.8, 9.9, 9.9, 9.9, 1.2, 1.2, 1.8, 1.5, 1.5, 1.6,
1.4, 1.1, 3266, 3256, 7044, 6868, 6556, 3405, 3410, 3980, 5567,
59.4, 56, 52.8, 52.4, 55.5, 54, 61, 53.6)), class = "data.frame", row.names = c(NA,
-32L))
正如 Lucas 所指出的,facet 是一种选择。
如果您想并排查看箱线图,也可以像这样使用 fill = ID
:
library(ggplot2)
df <- structure(list(ID = c("F1", "F1", "F1", "F1", "F1", "F1", "F1",
"F2", "F2", "F2", "F2", "F2", "F2", "F2", "F2", "F3", "F3", "F3",
"F3", "F3", "F3", "F3", "F3", "F3", "F4", "F4", "F4", "F4", "F4",
"F4", "F4", "F4"),
Date = c("22/6/2021", "23/6/2021", "24/6/2021",
"25/6/2021", "26/6/2021", "27/6/2021", "28/6/2021", "22/6/2021",
"23/6/2021", "24/6/2021", "25/6/2021", "26/6/2021", "27/6/2021",
"28/6/2021", "29/6/2021", "22/6/2021", "23/6/2021", "24/6/2021",
"25/6/2021", "26/6/2021", "27/6/2021", "28/6/2021", "29/6/2021",
"30/6/2021", "22/6/2021", "23/6/2021", "24/6/2021", "25/6/2021",
"26/6/2021", "27/6/2021", "28/6/2021", "29/6/2021"),
Values = c(9.6,
9.8, 10.2, 9.8, 9.9, 9.9, 9.9, 1.2, 1.2, 1.8, 1.5, 1.5, 1.6,
1.4, 1.1, 3266, 3256, 7044, 6868, 6556, 3405, 3410, 3980, 5567,
59.4, 56, 52.8, 52.4, 55.5, 54, 61, 53.6)),
class = "data.frame", row.names = c(NA,
-32L))
ggplot(df, aes(x = ID, y = Values, fill = ID)) +
geom_boxplot() +
scale_y_log10()
注意:我缩放了 y 值 (log10) 以便能够更好地看到 F1、F2 和 F4 中的差异。