如何从 ggplot 中的多个变量绘制一个图?
How can I make one plot from multiple variables in ggplot?
我正在尝试为三个组制作 post 前更改图。
在我的数据框中,预数据和 post 数据存储为两个不同的变量,如下所示。
pre_treat <- c(5,8,4,6,5,9,6,7,5)
post_treat <- c(2,2,4,10,9,11,4,5,3)
group <- c("A","A","A","B","B","B","C","C","C")
df <- data.frame(pre_treat = pre_treat,
post_treat = post_treat,
group = group)
> df
pre_treat post_treat group
1 5 2 A
2 8 2 A
3 4 4 A
4 6 10 B
5 5 9 B
6 9 11 B
7 6 4 C
8 7 5 C
9 5 3 C
我想绘制每个组的 pre_treat
和 post_treat
的平均值,如下图所示。我也想用组面绘制它们。
我们可以这样做。首先以长格式导入数据。然后计算每组的平均值。使用 forcats
包中的 fct_relevel
重新调平,然后使用 facet_wrap
.
绘图
library(tidyverse)
df %>%
pivot_longer(-group) %>%
group_by(group, name) %>%
summarise(mean = mean(value)) %>%
mutate(name = fct_relevel(name, c("pre_treat", "post_treat"))) %>%
ggplot(aes(x=name, y=mean, group=1)) +
geom_line()+
facet_wrap(.~group)
我正在尝试为三个组制作 post 前更改图。 在我的数据框中,预数据和 post 数据存储为两个不同的变量,如下所示。
pre_treat <- c(5,8,4,6,5,9,6,7,5)
post_treat <- c(2,2,4,10,9,11,4,5,3)
group <- c("A","A","A","B","B","B","C","C","C")
df <- data.frame(pre_treat = pre_treat,
post_treat = post_treat,
group = group)
> df
pre_treat post_treat group
1 5 2 A
2 8 2 A
3 4 4 A
4 6 10 B
5 5 9 B
6 9 11 B
7 6 4 C
8 7 5 C
9 5 3 C
我想绘制每个组的 pre_treat
和 post_treat
的平均值,如下图所示。我也想用组面绘制它们。
我们可以这样做。首先以长格式导入数据。然后计算每组的平均值。使用 forcats
包中的 fct_relevel
重新调平,然后使用 facet_wrap
.
library(tidyverse)
df %>%
pivot_longer(-group) %>%
group_by(group, name) %>%
summarise(mean = mean(value)) %>%
mutate(name = fct_relevel(name, c("pre_treat", "post_treat"))) %>%
ggplot(aes(x=name, y=mean, group=1)) +
geom_line()+
facet_wrap(.~group)