首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在R中两组之间进行多重比较的条形图?

如何在R中两组之间进行多重比较的条形图?
EN

Stack Overflow用户
提问于 2022-06-23 23:39:00
回答 1查看 34关注 0票数 1

我想看看我是否能在两组之间做一个多个比较的条形图。

例如,请考虑以下数据集。除分类变量外,所有变量都在1到5之间。

代码语言:javascript
复制
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包做一个条形图,就像下面的焦虑变量代码一样。

代码语言:javascript
复制
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))

话虽如此,我的问题是问我如何组合这样的多个图?在上面的例子中,我希望在相同的图表中对焦虑、抑郁和外向性进行比较。

谢谢!这是我的第一篇文章,所以我希望我提供了所有必要的信息!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-23 23:46:47

您可以通过使用tidyr::pivot_longer()将数据转换为长格式,然后使用facet来实现这一点。

我已经修改了您的ggpubr代码,但是我收到了关于错误条的SE计算的警告,所以您应该检查一下。

只需运行data %>% pivot_longer(-Sex)来查看它所做的事情:变量有两列name,值为value

代码语言:javascript
复制
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))

结果:

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72737626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档