我是这个网站的新手和一般编程所以如果这是一个重复的问题,我道歉。所以这是代码:
dataset %>% group_by(factor) %>%
summarise(`variable`= mean(`variable`)) %>%
ggplot(aes(factor, `variable`)) +
geom_col(aes(fct_relevel(factor, "level", after=4L)))
为简单起见,我只是将因子变量和级别名称替换为相应的列类型。我只需要知道如何将SEM添加到该图中。谢谢!
答案 0 :(得分:0)
我们可以在mean_se
使用ggplot2
。这计算了我们的平均值和标准误差。由于输出为data.frame
,因此我们必须将其包含在list
内,我们可以使用tidyr::unnest
取消它。之后,绘图正常进行。
library(dplyr)
library(ggplot2)
library(tidyr)
# or simply use `library(tidyverse)`
theme_set(theme_bw())
pdata <- iris %>%
group_by(Species) %>%
summarise(new = list(mean_se(Sepal.Length))) %>%
unnest(new)
pdata %>%
ggplot(aes(Species, y)) +
geom_col(width = .5) +
geom_errorbar(aes(ymin = ymin, ymax = ymax))
如果你想要因子的顺序,我只提供一次变量。您可以将所有映射到变量放入第一次调用aes
:
pdata %>%
ggplot(aes(fct_relevel(Species, "versicolor"), y, ymin = ymin, ymax = ymax)) +
geom_col(width = .5) +
geom_errorbar()
一般情况下,我建议绘制点和误差线,因为它们使用的墨水少得多,你可以更清楚地看到发生了什么。
ggplot(iris, aes(Species, Sepal.Length)) +
stat_summary()
#> No summary function supplied, defaulting to `mean_se()