我想看看我是否能在两组之间做一个多个比较的条形图。
例如,请考虑以下数据集。除分类变量外,所有变量都在1到5之间。
Extraversion <- c(4.3, 2, 4.2, 4, 2, 1.5, 3.8, 3.5, 2.1, 2.1, 3)
Anxiety <- c(1.2, 3, 1, 2.3, 5, 5, 2.3, 2.2, 5, 4.5, 3)
Depression <- c(2, 3.5, 1, 3.5, 5, 5, 1, 2, 4.3, 4.5, 1)
Sex <- c("Male", "Female", "Male", "Male", "Female", "Female", "Male",
"Female", "Female", "Female", "Male")
data <- data.frame(Extraversion, Anxiety, Depression, Sex)通常,我会用ggpubr包做一个条形图,就像下面的焦虑变量代码一样。
ggbarplot(data, x = "Sex", y = "Anxiety", #data file, x variables, y variable
add = c("mean_se", "jitter"), #errorbars SE & jitter
color = "black", #Color for data points
fill = "Sex", #Color fill grouping variable
alpha = .6, #Alpha
palette = "jama", #ggsci package color palettes
position = position_dodge(.5))话虽如此,我的问题是问我如何组合这样的多个图?在上面的例子中,我希望在相同的图表中对焦虑、抑郁和外向性进行比较。
谢谢!这是我的第一篇文章,所以我希望我提供了所有必要的信息!
发布于 2022-06-23 23:46:47
您可以通过使用tidyr::pivot_longer()将数据转换为长格式,然后使用facet来实现这一点。
我已经修改了您的ggpubr代码,但是我收到了关于错误条的SE计算的警告,所以您应该检查一下。
只需运行data %>% pivot_longer(-Sex)来查看它所做的事情:变量有两列name,值为value。
library(tidyr)
library(ggpubr)
library(ggsci)
data %>%
pivot_longer(-Sex) %>%
ggbarplot(x = "Sex",
y = "value",
facet.by = "name",
add = c("mean_se", "jitter"),
color = "black",
fill = "Sex",
alpha = .6,
palette = "jama",
position = position_dodge(.5))结果:

https://stackoverflow.com/questions/72737626
复制相似问题