ggplot - 如何根据性别制作错误栏

问题描述 投票:0回答:1

刚开始时几句话 - 我刚刚开始与R一起旅行,经过初步体验后我非常热衷于进一步学习!但我遇到了一个巨大的问题,谷歌搜索似乎没有帮助。也许这里有一些好心灵可以用你的智慧引导我:)

所以,我一直在尝试使用ggplot在R中创建一个error_bar。但问题是在y轴上我得到连续变量(婚姻满意度),x ais是因子(由三个等级组成),我也想在情节中添加性别(更重要的是,所有这些都必须是黑色的 - 白色,这使它加倍)。

我想要做的是显示三种不同宗教(基督教,穆斯林,无神论)在性别(男性,女性)方面的婚姻满意度的均值和标准差。你知道怎么做吗?

提前致谢! <3

我已经尝试用我的数据做boxplot,但是这样的情节并没有提供任何有用的信息,并且在谷歌搜索后我认为这个错误栏更适合数据。这是它的样子:

factor(ds$`Religion`, levels = c(2, 4, 6), labels = c("Christian", "Muslim", "atheistic"))
factor(ds$Sex, levels = c(0, 1), labels = c("Male", "Female"))

obj1 <- ggplot(data=df, aes(y=Marital, x=factor(Religion), fill=factor(Sex))) + geom_boxplot()

obj1+labs(x="Religious affiliation", y="Marital satisfaction", fill="Sex") -> obj2
obj2 + scale_x_discrete(labels = c('Christian','Muslim','atheistic')) -> obj3
obj3 + scale_fill_discrete(name = "Sex", labels = c("Male", "Female")) -> obj4
obj4 + scale_y_continuous(expand = c(0, 1)) -> obj5

我复制粘贴我的数据:https://textsaver.flap.tv/lists/2l4k

r ggplot2
1个回答
0
投票

我想要做的是显示三种不同宗教(基督教,穆斯林,无神论)在性别(男性,女性)方面的婚姻满意度的均值和标准差。你知道怎么做吗?

这个问题的简单答案是您应该事先创建摘要统计信息。在选择之后,可视化变得微不足道。

假设您有兴趣使用tidyverse解决方案,我将按如下方式进行:

library(tidyverse)
ds %>%
group_by(Religion, Sex) %>%
summarize(meanVal = mean(Marital),
          sdVal = sd(Marital)) -> ds.summarized

ds.summarized将为每个宗教 - 性别组合提供一行,并提供该组中的军事满意度的平均值和sd。然后你可以使用geom_errorbar进行绘图,其中有美学y=meanValymin=meanVal - sdValymax=meanVal + sdVal。最后一句话 - 您可能希望使用标准误差而不是标准偏差。

© www.soinside.com 2019 - 2024. All rights reserved.